for i in ax.containers: ax.bar_label(i,fontsize = 16)
时间: 2024-02-18 10:02:32 浏览: 31
在 Matplotlib 中,`ax.containers` 属性是一个包含所有图形容器的列表,包括直方图、条形图、散点图等。`bar_label()` 方法可以将标签添加到条形图中的每个条形上。它接受两个参数,第一个参数是一个 `Container` 对象,表示要添加标签的图形容器,第二个参数是一个字典,用于设置标签属性,例如字体大小、颜色、位置等。例如,下面的代码将字体大小设置为 16,并将标签添加到每个条形上:
```python
import matplotlib.pyplot as plt
import numpy as np
# 生成一组随机数据
data = np.random.randint(1, 10, size=5)
fig, ax = plt.subplots()
ax.bar(range(len(data)), data) # 绘制条形图
for i in ax.containers:
ax.bar_label(i, fontsize=16) # 将标签添加到每个条形上
plt.show() # 显示图形
```
这将在每个条形上添加标签,并将标签字体大小设置为 16。
相关问题
import pandas as pdimport numpy as npimport matplotlib.pyplot as pltdf = pd.read_excel(r'C:\Users\86187\Downloads\2022蓝桥江西省赛.xls')ff = df[df['学校名称'] == "江西理工大学"]plt.rcParams['font.sans-serif'] = ['SimHei']grouped = ff.groupby(['比赛科目', '奖项'])['准考证号'].agg('count').unstack()ax = grouped.plot.bar(figsize=(5, 3))for p in ax.containers: ax.bar_label(p, label_type='edge', fontsize=8)plt.show()如何调整三等奖和二等奖的位置
你可以在 `grouped` 变量上重新排列列的顺序,将二等奖和三等奖的列交换位置,然后再进行分组和绘图。具体代码如下:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df = pd.read_excel(r'C:\Users\86187\Downloads\2022蓝桥江西省赛.xls')
ff = df[df['学校名称'] == "江西理工大学"]
plt.rcParams['font.sans-serif'] = ['SimHei']
grouped = ff.groupby(['比赛科目', '奖项'])['准考证号'].agg('count').unstack()
# 重新排列列的顺序
grouped = grouped[['一等奖', '三等奖', '二等奖']]
ax = grouped.plot.bar(figsize=(5, 3))
for p in ax.containers:
ax.bar_label(p, label_type='edge', fontsize=8)
plt.show()
```
这里使用了 `grouped[['一等奖', '三等奖', '二等奖']]` 将列的顺序重新排列。
d = data_2_1.groupby('校园卡号').agg({'消费次数':np.size,'消费金额':np.sum})[['消费金额','消费次数']] # 封装箱线图 boxplot(data = d) # 依据箱线图去除异常数据 d = d[ (d['消费金额'] < 800) & (d['消费次数'] < 180)] print(d.mean()) data_3_zhuanye = data_2_1.query("专业名称 in ['18国际金融','18会计','18商务日语']") a = data_3_zhuanye.groupby(['专业名称','性别'])['消费金额'].mean().unstack() a = np.round(a,2) # 小数点两位且四舍五入 with sns.color_palette('Blues_r'): bar = a.plot.bar() plt.xticks(rotation =0) plt.title('平均每次刷卡金额') for i in bar.containers: plt.bar_label(i)
这段代码看起来是一个数据分析的过程。首先,将数据按照校园卡号分组,统计每个校园卡号的消费次数和消费金额,然后绘制箱线图以便去除异常数据。接着,将统计结果中消费金额小于800元且消费次数小于180的数据保留下来,并计算这些数据的平均值。最后,从原始数据中筛选出专业名称为'18国际金融'、'18会计'、'18商务日语'的记录,并按照性别和消费金额进行分组计算平均值,将结果绘制成条形图。其中,使用了Python中的pandas和seaborn库。