met*_*eto 5 python histogram pandas
我想有2个直方图出现在同一个图上(有不同的颜色,可能还有不同的alphas).我试过了
import random
x = pd.DataFrame([random.gauss(3,1) for _ in range(400)])
y = pd.DataFrame([random.gauss(4,2) for _ in range(400)])
x.hist( alpha=0.5, label='x')
y.hist(alpha=0.5, label='y')
x.plot(kind='kde', style='k--')
y.plot(kind='kde', style='k--')
plt.legend(loc='upper right')
plt.show()
Run Code Online (Sandbox Code Playgroud)
这产生了4个不同图的结果.我怎么能把它们放在同一个?
如果我理解正确的话,两个his应该进入同一个子情节.所以它应该是
fig = plt.figure()
ax = fig.add_subplot(111)
_ = ax.hist(x.values)
_ = ax.hist(y.values, color='red', alpha=.3)
Run Code Online (Sandbox Code Playgroud)
你也可以将pandas plot方法传递给一个轴对象,所以如果你想在另一个图中同时使用kde:
fig = plt.figure()
ax = fig.add_subplot(111)
x.plot(kind='kde', ax=ax)
y.plot(kind='kde', ax=ax, color='red')
Run Code Online (Sandbox Code Playgroud)
要将所有内容放入单个图中,您需要两个不同的y比例,因为kde是密度,而直方图是频率.为此你使用axes.twinx()命令.
fig = plt.figure()
ax = fig.add_subplot(111)
_ = ax.hist(x.values)
_ = ax.hist(y.values, color='red', alpha=.3)
ax1 = ax.twinx()
x.plot(kind='kde', ax=ax1)
y.plot(kind='kde', ax=ax1, color='red')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9012 次 |
| 最近记录: |