Python 无法正确处理linspace
我尝试了以下代码来绘制图表Python 无法正确处理linspace,python,numpy,matplotlib,Python,Numpy,Matplotlib,我尝试了以下代码来绘制图表 import numpy as np import matplotlib.pyplot as plt R=input('enter the rate of rainfall in mm/hr ') D=np.linspace(0.2,6,30) n=0.08 l=41*pow(R,(-0.21)) N=n*exp(-l*D) plt.plot(D,N) 我希望X轴的起点为0.2,终点为6.0,间隔为0.5,但我得到的是起点0,终点6,间隔1 谁能告
import numpy as np
import matplotlib.pyplot as plt
R=input('enter the rate of rainfall in mm/hr ')
D=np.linspace(0.2,6,30)
n=0.08
l=41*pow(R,(-0.21))
N=n*exp(-l*D)
plt.plot(D,N)
我希望X轴的起点为0.2,终点为6.0,间隔为0.5,但我得到的是起点0,终点6,间隔1
谁能告诉我哪里出了错?
谢谢我想你把一些事情弄糊涂了: 首先,
np.linspace(0.2,6,30)
实际上给出了0.2的间距:
np.linspace(0.2,6,30)
array([ 0.2, 0.4, 0.6, 0.8, 1. , 1.2, 1.4, 1.6, 1.8, 2. , 2.2,
2.4, 2.6, 2.8, 3. , 3.2, 3.4, 3.6, 3.8, 4. , 4.2, 4.4,
4.6, 4.8, 5. , 5.2, 5.4, 5.6, 5.8, 6. ])
如果希望值介于0.2和6之间且间距为0.5,则需要使用np.arange
:
np.arange(0.2,6,0.5)
array([ 0.2, 0.7, 1.2, 1.7, 2.2, 2.7, 3.2, 3.7, 4.2, 4.7, 5.2,
5.7])
但当你说你得到“起点0端点6间隔1!”时,我想你实际上指的是绘图上X轴的极限?您的代码当前生成以下图形:
通过在代码中添加plt.xlim(0.2,6)
,可以将X轴限制更改为0.2到6之间。但是,标签仍将在0到6之间。我们可以明确地强制他们按照您想要的方式:
import numpy as np
import matplotlib.pyplot as plt
R=input('enter the rate of rainfall in mm/hr ')
#D=np.linspace(0.2,6,30)
D = np.arange(0.2,6,0.5)
n=0.08
l=41*pow(R,(-0.21))
N=n*np.exp(-l*D)
plt.plot(D,N)
plt.xlim(0.2,6)
plt.gca().set_xticks(D) # This
plt.show()
请参见np.arange以设置轴的参数
import numpy as np
import matplotlib.pyplot as plt
# evenly sampled time at 200ms intervals
t = np.arange(0., 5., 0.2)
不清楚起点0终点6间隔1的含义。也许包括一张图片和解释你到底想改变什么会有所帮助。非常感谢你,我刚刚开始使用ipython,它太棒了!没问题。如果你对我的回答满意,你介意接受它(按旁边的勾号)吗?祝你学习顺利!