python绘图之分组柱状图

本节学习使用python绘制分组柱状图

代码如下:

# 导入numpy和matplotlib.pyplot库,分别用于数值计算和绘图
import numpy as np
import matplotlib.pyplot as plt

# 定义组标签,用于图例和数据标识
gruop_label = ['第一组', '第二组', '第三组']
# 定义每组柱状图的颜色
gruop_color = ['red', 'green', 'yellow']
# 定义x轴的位置,这里生成一个从1到7,步长为2的数组,表示柱状图的中心位置
x = np.arange(1, 7, 2)
# 定义三组数据,分别对应y1、y2和y3
y1 = np.arange(1, 7, 2)
y2 = np.arange(3, 9, 2)
y3 = np.arange(5, 11, 2)
# 将三组数据存储在一个列表中,方便后续循环处理
y_list = [y1, y2, y3]

# 设置matplotlib的参数,确保中文标签可以正常显示
plt.rcParams['font.sans-serif'] = ['SimHei']
# 设置matplotlib的参数,确保负号可以正常显示
plt.rcParams['axes.unicode_minus'] = False
# 创建一个1行1列的子图,返回图形对象fig和轴对象ax
fig, ax = plt.subplots(1, 1)

# 定义柱状图的宽度
width = 0.5
# 循环绘制每组柱状图
for index in range(len(y_list)):
    # 在x轴上偏移index*width的位置绘制柱状图,使用当前组的颜色和标签
    bar = ax.bar(x + index * width, y_list[index], edgecolor="black", label=gruop_label[index], width=width, color=gruop_color[index])
    # 为柱状图添加数据标签,显示在柱状图的边缘
    ax.bar_label(bar, label_type="edge")

# 添加图例,显示每组柱状图的标签
ax.legend()
# 显示绘制的图形
plt.show()

### 使用 Matplotlib 和 Seaborn 绘制分组柱状图 以下是通过 `Matplotlib` 和 `Seaborn` 库绘制分组柱状图的一个完整示例。分组柱状图用于比较多个类别之间的不同子类别的数值。 #### 示例代码 ```python import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns # 设置字体大小和其他样式参数 sns.set_context("notebook", rc={"font.size": 12, "axes.titlesize": 14, "axes.labelsize": 12}) # 创建虚拟数据集 data = { 'Group': ['A', 'B', 'C'], 'Category1': [30, 35, 27], 'Category2': [35, 40, 30] } df = pd.DataFrame(data) # 计算条形的位置 bar_width = 0.35 index = np.arange(len(df['Group'])) # 绘制分组柱状图 plt.figure(figsize=(8, 6)) bars1 = plt.bar(index, df['Category1'], bar_width, label='Category 1') bars2 = plt.bar(index + bar_width, df['Category2'], bar_width, label='Category 2') # 添加标签和标题 plt.xlabel('Groups', fontsize=12) plt.ylabel('Values', fontsize=12) plt.title('Grouped Bar Chart Example', fontsize=14) plt.xticks(index + bar_width / 2, df['Group']) plt.legend() # 显示图形 plt.tight_layout() plt.show() ``` 上述代码实现了以下功能: - 利用 Pandas 构建了一个简单的 DataFrame 来存储分组数据[^1]。 - 使用 NumPy 的 `arange` 函数定义了条形位置,并设置了条形宽度以便于区分不同的分类。 - 调用了 Matplotlib 的 `bar` 方法分别绘制两个分类的数据列,形成分组图表。 - 借助 Seaborn 的 `set_context` 方法调整整体绘图风格以及字体大小[^2]。 此代码片段展示了如何利用 Matplotlib 和 Seaborn 结合的方式制作清晰直观的分组柱状图。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值