使用非十进制数据点Matplotlib Python生成正态分布

使用非十进制数据点Matplotlib Python生成正态分布,python,numpy,matplotlib,Python,Numpy,Matplotlib,到目前为止,我能够生成基本的十进制版本,如下所示: 我用来生成它的代码: import numpy as np import matplotlib.pyplot as plt plt.figure(figsize=(8,4)) x = np.linspace(-20,20,1000) plt.plot(x,stats.norm.pdf(x,0,5),'r') plt.plot(x,stats.norm.pdf(x,0,10),'b') plt.title("Flattening t

到目前为止,我能够生成基本的十进制版本,如下所示:

我用来生成它的代码:

import numpy as np
import matplotlib.pyplot as plt

plt.figure(figsize=(8,4))
x = np.linspace(-20,20,1000)
plt.plot(x,stats.norm.pdf(x,0,5),'r')
plt.plot(x,stats.norm.pdf(x,0,10),'b')
plt.title("Flattening the curve")
plt.savefig("graph.png")
plt.show()
我想要的是x轴和y轴从0开始,显示整数而不是浮点值。类似于此,但作为线图而不是直方图:


有什么建议吗?任何帮助都将不胜感激。谢谢你的阅读

您的平均值为
0
,由于正态分布围绕平均值对称,因此您的图形将进入-ve轴。因此,将平均值移向正值,并从
0
开始计算
x

import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

plt.figure(figsize=(8,4))
x = np.linspace(0,40,1000)
plt.plot(x,stats.norm.pdf(x, 20,5),'r')
plt.plot(x,stats.norm.pdf(x,20,10),'b')
plt.title("Flattening the curve")
plt.savefig("graph.png")
plt.show()

y
轴是pdf值,因此

  • 曲线下面积==1
  • pdf值为非负
为了得到整数,您可以通过某个常量因子(比如100)对pdf的所有值进行缩放,但是如果您没有明确提到所使用的缩放值,那么图形将失去作用。您应该检查为什么要在y轴上使用整数。要缩放y轴,可以使用


plt.plot(x,stats.norm.pdf(x,20,5)*100,'r')
您的平均值在
0
处,由于正态分布围绕平均值对称,因此您的图形将进入-ve轴。因此,将平均值移向正值,并从
0
开始计算
x

import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

plt.figure(figsize=(8,4))
x = np.linspace(0,40,1000)
plt.plot(x,stats.norm.pdf(x, 20,5),'r')
plt.plot(x,stats.norm.pdf(x,20,10),'b')
plt.title("Flattening the curve")
plt.savefig("graph.png")
plt.show()

y
轴是pdf值,因此

  • 曲线下面积==1
  • pdf值为非负
为了得到整数,您可以通过某个常量因子(比如100)对pdf的所有值进行缩放,但是如果您没有明确提到所使用的缩放值,那么图形将失去作用。您应该检查为什么要在y轴上使用整数。要缩放y轴,可以使用

plt.plot(x,stats.norm.pdf(x,20,5)*100,'r')
使用
plt.ylim(ymin=0)
让y从零开始。将
x_-mean
设置为某个值,例如
stats.norm.pdf(x,x_-mean,5)
中的90,并将
x=np.linspace(x_-20,x_-mean+20,1000)
设置为移动x值

pdf
的总面积为1。要使其高度与直方图相似,必须将其乘以受试者总数,再除以直方图区域的宽度(这些区域需要均匀分布)

将numpy导入为np
将matplotlib.pyplot作为plt导入
从scipy导入统计信息
总数=100000
bin_dist=1
plt.图(figsize=(8,4))
x=np.linspace(0,70500)
plt.plot(x,stats.norm.pdf(x,25,5)*总波普/本区,“r”)
plt.plot(x,stats.norm.pdf(x,40,10)*总图/bin_dist,'b')
plt.ylim(ymin=0)
plt.show()

请注意,经常显示的曲线是指数增长(逻辑曲线),随着更多个体获得免疫,该曲线会减弱。这不是一个统计概率分布曲线,因为它显示了随着时间的推移感染的个体数量。这解释了更多关于这类曲线的信息。

使用
plt.ylim(ymin=0)
让y从零开始。将
x_-mean
设置为某个值,例如
stats.norm.pdf(x,x_-mean,5)
中的90,并将
x=np.linspace(x_-20,x_-mean+20,1000)
设置为移动x值

pdf
的总面积为1。要使其高度与直方图相似,必须将其乘以受试者总数,再除以直方图区域的宽度(这些区域需要均匀分布)

将numpy导入为np
将matplotlib.pyplot作为plt导入
从scipy导入统计信息
总数=100000
bin_dist=1
plt.图(figsize=(8,4))
x=np.linspace(0,70500)
plt.plot(x,stats.norm.pdf(x,25,5)*总波普/本区,“r”)
plt.plot(x,stats.norm.pdf(x,40,10)*总图/bin_dist,'b')
plt.ylim(ymin=0)
plt.show()

请注意,经常显示的曲线是指数增长(逻辑曲线),随着更多个体获得免疫,该曲线会减弱。这不是一个统计概率分布曲线,因为它显示了随着时间的推移感染的个体数量。这解释了更多关于此类曲线的信息