【问题标题】:Box and whisker plot on multiple columns多列上的箱线图
【发布时间】:2020-06-14 13:26:32
【问题描述】:

我正在尝试在我的数据集上制作一个看起来像这样的盒须图 -

&我正在尝试制作的图表

我当前的代码行如下 -

import seaborn as sns
import matplotlib.pyplot as plt
d = df3.boxplot(column = ['Northern California','New York','Kansas','Texas'], by = 'Banner')
d

谢谢

【问题讨论】:

  • 为了将来参考,与其发布一些数据的图片,不如考虑提供reproducible Pandas example,这样人们就可以复制它,然后绘制它或以其他方式使用它。
  • 当然,我会进一步处理它。谢谢

标签: python pandas matplotlib seaborn boxplot


【解决方案1】:

我重新创建了您的数据集的虚拟版本:

import numpy as np
import pandas as pd
dictionary = {'Banner':['Type1']*10+['Type2']*10,
              'Northen_californina':np.random.rand(20),
              'Texas':np.random.rand(20)}
df = pd.DataFrame(dictionary)

您需要将数据框 (unpivot) 融为一体,以便将地理区域的信息存储在列中,而不是作为列名。您可以使用 pandas.melt 方法并在 value_vars 参数中指定要放入箱线图中的所有列。

使用我的虚拟数据集,您可以这样做:

df = pd.melt(df,id_vars=['Banner'],value_vars=['Northen_californina','Texas'],
             var_name='zone', value_name='amount')

现在您可以使用 hue 参数应用箱线图:

import seaborn as sns
import matplotlib.pyplot as plt
plt.figure(figsize=(9,9)) #for a bigger image
sns.boxplot(x="Banner", y="amount", hue="zone", data=df, palette="Set1")

【讨论】:

  • 有效!谢谢@TeArge
猜你喜欢
  • 2018-09-08
  • 2023-01-31
  • 2017-08-03
  • 2021-09-02
  • 1970-01-01
  • 1970-01-01
  • 2021-09-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多