pandas - 如何使 DataFrame 绘图条以不同的颜色显示?
问题描述
我是一名新手数据分析师,我正在尝试使用 df.plot() 创建一个数据框条形图,以便条形图具有不同的颜色。我发现除非数据帧被转置,否则没有任何参数可以传递给不同颜色的条形图。我试图用下面的代码转置它:
gender_overview = pd.read_sql("SELECT Gender, COUNT(*) AS NumberOfPeople "
"FROM [AdventureWorks2019].[Sales].[vPersonDemographics] "
"GROUP BY Gender "
"ORDER BY NumberOfPeople DESC;", conn)
display(gender_overview)
df = gender_overview.set_index('Gender')
ax = df.T.plot(kind='bar', label='index', colormap='Paired')
labels = ['Male', 'Female', 'Not Specified']
ax.set_xticks(range(len(df)))
ax.set_xticklabels(labels=labels, rotation=0)
plt.show()
但是,条形图和 x_ticks 最终不匹配(请参阅 此处的屏幕截图。)
如何确保条形与相应的 x_ticks 匹配?
预先感谢您的帮助 :)
解决方案
我发现当我想要一些精细控制时,我无法使用 Pandas 进行绘图。我倾向于依靠 matplotlib。
import panda as pd
import matplotlib.pyplot as plt
import numpy as np
df = pd.DataFrame()
df['test'] = np.arange(6)
df['gender'] = ['M', 'F', 'F', 'M', 'F', 'F']
df.set_index('gender', inplace=True)
plt.bar(df.index, df['test'], color=['blue', 'red'])
plt.show()
尝试 group-by 很诱人,但我认为它没有帮助。
g = df.groupby("gender").count()
plt.bar(g.index, g['test'], color=['blue', 'red'])
plt.show()
推荐阅读
- excel - 获取具有另一列过滤范围的唯一列表
- sql - 如何正确地将两列中的日期谱系分配给彼此?
- ios - 带有菜单的 ToolbarItem 很难点击 - SwiftUI
- javascript - 我的 api 调用以错误结束:套接字挂断,我正在使用节点 js 通过 axios 发出并获取调用请求
- javascript - React Native Expo:用户选择后立即将图像加载到 firabse 存储
- docker - Docker 映像构建错误:设备上没有剩余空间
- c# - 无法在单元测试中访问已处置的对象
- android-jetpack-compose - Jetpack Compose - 阻止重点元素窃取背压?
- css - 如何正确修复 ScrollView 使其行为类似于常规视图但具有垂直滚动?
- python - 要求搜索时出现 Python AI 错误