Pandas 箱线图的次要 y 轴
Pandas secondary y axis for boxplots
我想对 pandas 中的一些箱线图使用辅助 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)
现在,使用默认线图很容易绘制到第二个 y 轴:
df.plot(kind='line', secondary_y=[4])
但是如果我使用箱线图样式,它不起作用:
df.plot(kind='box', secondary_y=[4])
有什么办法(也许通过 matplotlib)我可以 pandas 为箱线图绘制 2 个轴?使用 boxplot()
方法会更好,但我会采用 plot()
。谢谢。
其实使用 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)
还有一些样式、刻度标签等方面的清理工作。但这应该能让你开始。
我想对 pandas 中的一些箱线图使用辅助 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)
现在,使用默认线图很容易绘制到第二个 y 轴:
df.plot(kind='line', secondary_y=[4])
但是如果我使用箱线图样式,它不起作用:
df.plot(kind='box', secondary_y=[4])
有什么办法(也许通过 matplotlib)我可以 pandas 为箱线图绘制 2 个轴?使用 boxplot()
方法会更好,但我会采用 plot()
。谢谢。
其实使用 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)
还有一些样式、刻度标签等方面的清理工作。但这应该能让你开始。