使用Python在单个绘图上复制两个发行版
我想绘制如下图所示的分布--分布的尾部。我尝试了以下几点,但还没有达到目的:使用Python在单个绘图上复制两个发行版,python,python-2.7,numpy,matplotlib,Python,Python 2.7,Numpy,Matplotlib,我想绘制如下图所示的分布--分布的尾部。我尝试了以下几点,但还没有达到目的: import matplotlib.pyplot as plt import numpy as np import matplotlib.mlab as mlab import math mean1 = 0 variance1 = 1 sigma1 = math.sqrt(variance1) x = np.linspace(-3,3.5,100, endpoint=True) plt.plot(x,mlab.nor
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.mlab as mlab
import math
mean1 = 0
variance1 = 1
sigma1 = math.sqrt(variance1)
x = np.linspace(-3,3.5,100, endpoint=True)
plt.plot(x,mlab.normpdf(x,mean1,sigma1))
mean2 = 0.4
variance2 = 2
sigma2 = math.sqrt(variance2)
y = np.linspace(-4,3.5,100, endpoint=False)
plt.plot(x,mlab.normpdf(y,mean2,sigma2))
##plt.axis('off')
plt.yticks([])
plt.xticks([])
plt.show()
您有什么建议吗
您想要在
之间填充:
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.mlab as mlab
import math
mean1 = 0
variance1 = 1
sigma1 = math.sqrt(variance1)
x = np.linspace(-3,3.5,100, endpoint=True)
y1 = mlab.normpdf(x,mean1,sigma1)
fig, ax = plt.subplots()
ax.plot(x,y1)
mean2 = 0.4
variance2 = 2
sigma2 = math.sqrt(variance2)
y = np.linspace(-4,3.5,100, endpoint=False)
y2 = mlab.normpdf(y,mean2,sigma2)
ax.plot(x,y2)
ax.fill_between(x[:30], y1[:30], color='blue')
ax.fill_between(x[:30], y2[:30], color='green')
ax.fill_between(x[-30:], y1[-30:], y2[-30:], color='red', alpha=0.5)
ax.set_yticks([])
ax.set_xticks([])
plt.savefig('fill_norms.png')
plt.show()
这是一个非常简单的例子——请参阅并查看where
子句;高光之间的填充可以适应正在绘制的线条的变化(例如,在任何地方都会自动进行红色填充,坏事超过好事,而无需计算索引(本例中为30或-30))。您需要填充线之间的填充:
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.mlab as mlab
import math
mean1 = 0
variance1 = 1
sigma1 = math.sqrt(variance1)
x = np.linspace(-3,3.5,100, endpoint=True)
y1 = mlab.normpdf(x,mean1,sigma1)
fig, ax = plt.subplots()
ax.plot(x,y1)
mean2 = 0.4
variance2 = 2
sigma2 = math.sqrt(variance2)
y = np.linspace(-4,3.5,100, endpoint=False)
y2 = mlab.normpdf(y,mean2,sigma2)
ax.plot(x,y2)
ax.fill_between(x[:30], y1[:30], color='blue')
ax.fill_between(x[:30], y2[:30], color='green')
ax.fill_between(x[-30:], y1[-30:], y2[-30:], color='red', alpha=0.5)
ax.set_yticks([])
ax.set_xticks([])
plt.savefig('fill_norms.png')
plt.show()
这是一个非常简单的例子——请参阅并查看where
子句;高光之间的填充可以适应正在绘制的线条的变化(例如,在任何地方都会自动进行红色填充,坏事超过好事,而无需计算索引(本例中为30或-30))。您需要填充线之间的填充:
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.mlab as mlab
import math
mean1 = 0
variance1 = 1
sigma1 = math.sqrt(variance1)
x = np.linspace(-3,3.5,100, endpoint=True)
y1 = mlab.normpdf(x,mean1,sigma1)
fig, ax = plt.subplots()
ax.plot(x,y1)
mean2 = 0.4
variance2 = 2
sigma2 = math.sqrt(variance2)
y = np.linspace(-4,3.5,100, endpoint=False)
y2 = mlab.normpdf(y,mean2,sigma2)
ax.plot(x,y2)
ax.fill_between(x[:30], y1[:30], color='blue')
ax.fill_between(x[:30], y2[:30], color='green')
ax.fill_between(x[-30:], y1[-30:], y2[-30:], color='red', alpha=0.5)
ax.set_yticks([])
ax.set_xticks([])
plt.savefig('fill_norms.png')
plt.show()
这是一个非常简单的例子——请参阅并查看where
子句;高光之间的填充可以适应正在绘制的线条的变化(例如,在任何地方都会自动进行红色填充,坏事超过好事,而无需计算索引(本例中为30或-30))。您需要填充线之间的填充:
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.mlab as mlab
import math
mean1 = 0
variance1 = 1
sigma1 = math.sqrt(variance1)
x = np.linspace(-3,3.5,100, endpoint=True)
y1 = mlab.normpdf(x,mean1,sigma1)
fig, ax = plt.subplots()
ax.plot(x,y1)
mean2 = 0.4
variance2 = 2
sigma2 = math.sqrt(variance2)
y = np.linspace(-4,3.5,100, endpoint=False)
y2 = mlab.normpdf(y,mean2,sigma2)
ax.plot(x,y2)
ax.fill_between(x[:30], y1[:30], color='blue')
ax.fill_between(x[:30], y2[:30], color='green')
ax.fill_between(x[-30:], y1[-30:], y2[-30:], color='red', alpha=0.5)
ax.set_yticks([])
ax.set_xticks([])
plt.savefig('fill_norms.png')
plt.show()
这是一个非常简单的例子——请参阅并查看where
子句;高光之间的填充可以适应正在绘制的线条的变化(例如,在“坏事大于好事”的地方自动填充红色,而无需计算索引(本例中为30或-30))。My OP不够清晰。我主要是想让两者的尾部分布都正确,尤其是在右边,你是说你的y值是错误的吗?这是一个统计问题,而不是编程问题。问题是——统计和给尾巴涂颜色。修复了所有问题,但唯一剩下的问题是如何将y1和y2的右尾涂成与示例图一样的颜色?示例所需的所有内容都在回答代码中。您有一个在某个x值上方填充的示例,一个在y2和y1之间以及在y1和0之间填充的示例。样本就是这么做的,我的操作不够清晰。我主要是想让两者的尾部分布都正确,尤其是在右边,你是说你的y值是错误的吗?这是一个统计问题,而不是编程问题。问题是——统计和给尾巴涂颜色。修复了所有问题,但唯一剩下的问题是如何将y1和y2的右尾涂成与示例图一样的颜色?示例所需的所有内容都在回答代码中。您有一个在某个x值上方填充的示例,一个在y2和y1之间以及在y1和0之间填充的示例。样本就是这么做的,我的操作不够清晰。我主要是想让两者的尾部分布都正确,尤其是在右边,你是说你的y值是错误的吗?这是一个统计问题,而不是编程问题。问题是——统计和给尾巴涂颜色。修复了所有问题,但唯一剩下的问题是如何将y1和y2的右尾涂成与示例图一样的颜色?示例所需的所有内容都在回答代码中。您有一个在某个x值上方填充的示例,一个在y2和y1之间以及在y1和0之间填充的示例。样本就是这么做的,我的操作不够清晰。我主要是想让两者的尾部分布都正确,尤其是在右边,你是说你的y值是错误的吗?这是一个统计问题,而不是编程问题。问题是——统计和给尾巴涂颜色。修复了所有问题,但唯一剩下的问题是如何将y1和y2的右尾涂成与示例图一样的颜色?示例所需的所有内容都在回答代码中。您有一个在某个x值上方填充的示例,一个在y2和y1之间以及在y1和0之间填充的示例。这就是样本的全部功能。