我有一个名为
clean
的Pandas数据框,其中包含一列v
,我想绘制一个直方图并叠加一个密度图。我知道可以通过以下方式将它们绘制在一起:import pandas as pd
import matplotlib.pyplot as plt
Maxv=200
plt.subplot(211)
plt.hist(clean['v'],bins=40, range=(0, Maxv), color='g')
plt.ylabel("Number")
plt.subplot(212)
ax=clean['v'].plot(kind='density')
ax.set_xlim(0, Maxv)
plt.xlabel("Orbital velocity (km/s)")
ax.get_yaxis().set_visible(False)
但是当我尝试叠加时,y轴刻度值和标签不匹配:yhist, xhist, _hist = plt.hist(clean['v'],bins=40, range=(0, Maxv), color='g')
plt.ylabel("Number")
ax=clean['v'].plot(kind='density') #I would like to insert here a normalization to max(yhist)/max(ax)
ax.set_xlim(0, Maxv)
plt.xlabel("Orbital velocity (km/s)")
ax.get_yaxis().set_visible(False)
有什么提示吗?(附加问题:我如何更改密度平滑的宽度?)
ax = clean.v.plot(kind='hist', bins=40, range=(0, Maxv)) clean.v.plot(kind='kde', ax=ax, secondary_y=True)
但是range部分不起作用,还有左侧y轴的问题。 - Matt