/ / Pandas вторинна вісь y для боксплотів - python, pandas, boxplot

Панда вторинна вісь y для boxplots - python, панд, boxplot

Мені б хотілося використовувати вторинну вісь 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)

Є ще чистка з укладкою, галочками і т. Д. Але це має розпочати.