python - 相同 x 轴值的不同条形图
问题描述
我有一个数据框如下:
match_id team team_score
411 RCB 263
7937 KKR 250
620 RCB 248
206 CSK 246
11338 KKR 241
61 CSK 240
562 RCB 235
现在,我想为所有这些值绘制一个条形图作为单独的条形图,我在输出中得到的是不同的东西:
有什么方法可以为相同的 x 轴值制作不同的条形吗?
解决方案
当'team'
用作时x
,每个团队的所有值都被平均,一个小的误差条显示一个置信区间。要将表格的每个条目作为单独的条形图,数据框的索引可用于x
. 创建条形后,可以用团队名称标记它们。
(可选)hue='team'
为每个团队的条形着色。然后dodge=False
需要将杆定位良好。在这种情况下,Seaborn 还会创建一个图例,但它并不是那么有用,因为现在同样的信息也作为 x 值出现。可以通过 来抑制图例ax.legend_.remove()
。
from matplotlib import pyplot as plt
import pandas as pd
from io import StringIO
import seaborn as sns
data_str = StringIO("""match_id team team_score
411 RCB 263
7937 KKR 250
620 RCB 248
206 CSK 246
11338 KKR 241
61 CSK 240
562 RCB 235""")
df = pd.read_csv(data_str, delim_whitespace=True)
color_dict = {'RCB': 'dodgerblue', 'KKR': 'darkviolet', 'CSK': 'gold'}
ax = sns.barplot(x=df.index, y='team_score', hue='team', palette=color_dict, dodge=False, data=df)
ax.set_xticklabels(df['team'])
ax.legend_.remove()
plt.tight_layout()
plt.show()
推荐阅读
- c# - 使用空响应执行 PostAsync
- python - 无法使用 virtualenv 在 sublime3 中取消 python 构建
- django - 如何在 django 中使用创建的模型对象中的选择创建下拉菜单?
- google-cloud-platform - 将 Stackdriver 跟踪信息导出到 BigQuery
- excel - Web Scraping:按钮单击和帮助导航路径
- apache-spark - Apache Spark,NameError:未定义名称“flatMap”
- r - R stargazer 函数生成的表未对齐
- php - 按部分分组和划分
- mysql - 如何制作描述元素顺序的列?
- php - 如何使用 require_once 仅从远程页面加载变量,然后阻止远程页面的进一步执行?