python-3.x - 分别设置两个直方图的颜色有问题

标签 python-3.x pandas matplotlib

我正在尝试分析 wine-quality 数据集。有两个数据集:red wine 数据集和 white wine。我将它们组合在一起形成 wine_df。我想按颜色查看 Wine 组的平均质量,我尝试绘制它们。我想给红色直方图红色,白色直方图白色。但是这两个直方图总是相同的颜色。 plot() 中的'color' 参数似乎不起作用。颜色的结果始终是我在列表 colors 中设置的第一个。我应该怎么办?感谢您的回答!

python
colors = ['white','red']
plt.style.use('ggplot')
color_means = wine_df.groupby('color')['quality'].mean()
color_means.plot(kind='bar', title='Average Wine Quality by Color', color=colors, alpha=.7)
plt.xlabel('colors', fontsize=18)
plt.ylabel('Quality', fontsize=18)

enter image description here

最佳答案

我不确定您的数据是什么样的。但是,我使用了来自 github 的数据,并向每个数据框添加了一个新列,其中的值与其颜色相关联。也就是说,red_winered 值和 white_winewhite 值。

代码:

## Data read
red_wine = pd.read_csv('https://raw.githubusercontent.com/nishanthgandhidoss/Wine-Quality/master/data/winequality-red.csv',
                      sep = ';')
white_wine = pd.read_csv('https://raw.githubusercontent.com/nishanthgandhidoss/Wine-Quality/master/data/winequality-white.csv', 
                        sep = ';')

## Add a column to each data to identify the wine color 
red_wine['color'] = 'red'
white_wine['color'] = 'white'

## Combine the two dataframes    
wine_df = pd.concat([red_wine, white_wine])

## Histogram with different colors
colors = ['red','white']
plt.style.use('ggplot')
color_means = wine_df.groupby('color')['quality'].mean()
color_means.plot(kind='bar', title='Average Wine Quality by Color', color=colors, alpha=.7)
plt.xlabel('colors', fontsize=18)
plt.ylabel('Quality', fontsize=18)

输出:

enter image description here

关于python-3.x - 分别设置两个直方图的颜色有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54228092/

相关文章:

python - 多线程处理?

python - 如何使用 Pandas 基于多个字符串索引拆分列

windows-xp - 将 py2exe 与 wxPython 和 Matplotlib 结合使用

python - 如何在数据框中旋转包含字符串的一列?

python - 如何搜索项目集合是否在列表中?

python - 如何计算两个日期之间的季度数

python - Matplotlib 图例 LaTeX 文本的多行对齐

python - 如何在 Python 中使用 cv2 显示图像

python - 在 Python 中将输入函数参数放入字典的最佳方法是什么?

python - 如何在groupby之后聚合Pandas中的向量列?