Мені б хотілося використовувати вторинну вісь y для деяких боксерів в пандах, але це здається недоступним.
import numpy as np
import pandas as pd
data = np.random.random((10, 5))
data[:,-1] += 10 # offset one column
df = pd.DataFrame(data)
Тепер, використовуючи графік лінії за замовчуванням, досить просто побудувати схему на другій осі у:
df.plot(kind="line", secondary_y=[4])
Але якщо я використовую стиль Boxplot, він не працює:
df.plot(kind="box", secondary_y=[4])
Чи є спосіб (можливо, через matplotlib) я можу отримати панди, щоб побудувати 2 осі для boxplot? Використання boxplot()
метод буде кращим, але я візьму plot()
. Дякую.
Відповіді:
2 для відповіді № 1Насправді не так складно з matplotlib.
In [22]: fig, ax = plt.subplots()
In [23]: df[[0, 1, 2, 3]].plot(kind="box", ax=ax)
Out[23]: <matplotlib.axes._subplots.AxesSubplot at 0x4890978>
In [24]: ax2 = ax.twinx()
In [25]: ax2.boxplot(df[4], positions=[4])
In [27]: ax.set_xlim(0, 5)
Out[27]: (0, 5)
Є ще чистка з укладкою, галочками і т. Д. Але це має розпочати.