python - pandas boxplot 中每个子图的独立轴

标签 python pandas dataframe matplotlib boxplot

下面的代码有助于获得具有独特颜色框的子图。但是所有子图共享一组通用的 x 和 y 轴。我期待每个子图都有独立的轴:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import PathPatch

df = pd.DataFrame(np.random.rand(140, 4), columns=['A', 'B', 'C', 'D'])

df['models'] = pd.Series(np.repeat(['model1','model2', 'model3', 'model4',     'model5', 'model6', 'model7'], 20))

bp_dict = df.boxplot(
by="models",layout=(2,2),figsize=(6,4),
return_type='both',
patch_artist = True,
)

colors = ['b', 'y', 'm', 'c', 'g', 'b', 'r', 'k', ]
for row_key, (ax,row) in bp_dict.iteritems():
    ax.set_xlabel('')
    for i,box in enumerate(row['boxes']):
        box.set_facecolor(colors[i])

plt.show()

这是上述代码的输出:
enter image description here

我正在尝试为每个子图设置单独的 x 和 y 轴...
enter image description here

最佳答案

您需要事先创建图形和子图,并将其作为参数传递给 df.boxplot() .这也意味着您可以删除参数 layout=(2,2) :

fig, axes = plt.subplots(2,2,sharex=False,sharey=False)

然后使用:
bp_dict = df.boxplot(
by="models", ax=axes, figsize=(6,4),
return_type='both',
patch_artist = True,
)

关于python - pandas boxplot 中每个子图的独立轴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50971091/

相关文章:

python - 在 Python 中添加两个列表

python - 如何更正python中通过str.contains生成的输出

python - 如何使用间隔根据时间删除相同的值?

python - 来自多个不同长度列表的 Pandas 长格式 DataFrame

python - 通过存储索引提高 Pandas 过滤速度?

python - 如何保留最新值并删除列中的所有其他值( Pandas )

r - 如何在 R 中以概率方式合并两个向量

python - Python 中的固定关系笛卡尔积

python - 需要 ASCII 扑克牌才能打印一行

python - 在 Python 中查询时 MySQL 特殊字符丢失。 (但可以与 Django 一起使用。)