У меня есть кадр данных Pandas с именем clean
, который содержит столбец v
, для которого я хотел бы нарисовать гистограмму и наложить график плотности. Я знаю, что могу построить один под другим таким образом:Наложение гистограммы и плотности в Pandas/Matplotlib в Python
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)
Некоторые намек? (Дополнительный вопрос: как я могу изменить ширину плотности сглаживания?)
[этот ответ должен помочь] (http://stackoverflow.com/a/39987117/2336654) – piRSquared
Да, да, спасибо. Мне просто нужно найти настройки размера х диапазона и скрыть вторую ось y ... Спасибо! – Matt
Почему вы не используете ['seaborn'] (http://seaborn.pydata.org/tutorial/distributions.html#plotting-univariate-distributions)? – IanS