【问题标题】:Need help filling in box plot with custom colors需要帮助使用自定义颜色填充箱线图
【发布时间】:2022-11-15 09:45:29
【问题描述】:

数据:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

data = pd.DataFrame(np.random.normal(size=(15,4)))

#Rename columns
data.set_axis(['Column A', 'Column B', 'Column C', 'Column D'], axis=1, inplace=True)

data

     Column A    Column B    Column C    Column D
0    0.786186   -0.416792    0.174680    2.487244
1   -0.252369   -0.342730    0.205828   -1.321883
2   -2.000831   -1.710470    1.230441    1.151613
3    1.589489   -0.735494   -1.427740   -0.291532
4    0.162657    0.091248   -1.166623   -1.702915
5   -2.046027    0.538372    1.799922   -1.283141
6   -0.046736   -0.100009   -0.775107    1.778775
7   -0.205502   -1.033712    0.335681    0.178957
8   -0.598907    1.863979   -0.828703   -0.977883
9   -0.532970   -0.964670   -1.618440    0.169850
10   2.123033    0.472480    2.307614   -0.397944
11   1.149670   -0.906352    0.409004   -1.322099
12   0.618216   -1.181656    0.342085   -0.853023
13  -1.108748   -0.546607   -3.468131   -0.382351
14  -0.404277   -1.612273    0.787983    1.033892

#Create figure 
fig, axs = plt.subplots(2, figsize = (15,15))

#Colors I want to use
colors = ['#002072', '#00BDF2'] 

我想在 axs[0] 子图中(我创建的图中顶部的子图)中创建我的数据的箱形图,并填写条形颜色,如下所示。注意颜色是如何交替的。我已经提供了我想要的颜色的十六进制颜色代码。我还想更改中值/平均线的颜色,以便在深蓝色条中更容易看到。我真的很感激任何帮助。我已经为此苦苦挣扎了几个小时。您可能会认为这就像传递参数一样简单,但我在网上找到的示例代码并没有取得成功。我遇到的例子越多,我就越困惑。

谢谢!

【问题讨论】:

    标签: python pandas dataframe matplotlib boxplot


    【解决方案1】:

    我建议使用seaborn 或其他比matplotlib 更强大的库:

    import seaborn as sns
    
    # Let's melt the data first into long format.
    df = df.melt()
    
    # You appear to have two groups, let's make them:
    df['group'] = df.variable.isin(['Column A', 'Column C'])
    
    colors = ['#002072', '#00BDF2']
    
    sns.boxplot(data=df, y='variable', x='value', hue='group', palette=colors)
    plt.show()
    

    输出:

    你的问题有点太宽泛了,让我们从着色的一个问题开始。在此之后,自己查看文档,做一点谷歌搜索......如果你仍然无法弄清楚你的问题的多余部分,请随时提出一个新问题~

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多