python的对比柱状图结果分开呈现

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

对于python可视化中两个柱状图结果分开呈现

一、使用matoplotolib绘制柱状图

先简单绘制出一个柱状图,横坐标为a,b,c,d,e

*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt

x=np.arange(5)
y1=np.array([10,8,7,11
### 使用 Matplotlib 绘制柱状图 以下是基于所提供的引用内容以及专业知识构建的一个完整的示例代码,展示如何通过 `matplotlib` 庌绘柱状图。 #### 基础柱状图绘制 以下是一个基础的柱状图绘制方法,其中包含了 X 轴标签、Y 轴标签和图表标题: ```python import matplotlib.pyplot as plt class A: def draw_bar_chart(self, x_data, y_data, xlabel="X-axis", ylabel="Y-axis", title="Bar Chart"): """ 绘制柱状图并设置基本属性。 参数: x_data (list): X轴的数据列表。 y_data (list): Y轴的数据列表。 xlabel (str): X轴标签名称。 ylabel (str): Y轴标签名称。 title (str): 图表标题。 """ plt.figure(figsize=(8, 6)) # 设置画布大小 plt.bar(x_data, y_data, color='skyblue') # 创建柱状图 # 添加必要的标注 plt.xlabel(xlabel) plt.ylabel(ylabel) plt.title(title) # 显示网格线以便更清晰观察数据关系 plt.grid(axis='y', linestyle='--', alpha=0.7) # 展示图形 plt.show() # 实例化类A并调用draw_bar_chart方法 a_instance = A() x_values = ['Group A', 'Group B', 'Group C'] y_values = [10, 20, 15] a_instance.draw_bar_chart(x_values, y_values) ``` 上述代码展示了如何在一个自定义类中实现柱状图绘制功能,并允许灵活调整 X 轴标签、Y 轴标签和图表标题等内容[^1]。 --- #### 高级柱状图样式:堆叠与左右分布 如果希望进一步扩展柱状图的功能,比如实现堆叠柱状图或者左右分布柱状图,则可以通过修改参数来完成。下面分别给出两种高级样式的实现方式。 ##### 堆叠柱状图 堆叠柱状图适用于多组数据在同一类别下的叠加表示: ```python def draw_stacked_bar_chart(categories, data_series_1, data_series_2): """ 绘制堆叠柱状图 参数: categories (list): 类别名列表。 data_series_1 (list): 数据序列一。 data_series_2 (list): 数据序列二。 """ fig, ax = plt.subplots(figsize=(8, 6)) bar_width = 0.5 index = range(len(categories)) bars1 = ax.bar(index, data_series_1, bar_width, label='Series 1') bars2 = ax.bar(index, data_series_2, bar_width, bottom=data_series_1, label='Series 2') ax.set_xlabel('Categories') ax.set_ylabel('Values') ax.set_title('Stacked Bar Chart Example') ax.set_xticks(index) ax.set_xticklabels(categories) ax.legend() plt.tight_layout() plt.show() categories = ['Category A', 'Category B', 'Category C'] data_s1 = [10, 15, 30] data_s2 = [5, 10, 20] draw_stacked_bar_chart(categories, data_s1, data_s2) ``` 此部分实现了两组数据在相同分类上的堆叠效果[^2]。 ##### 左右分布柱状图 对于对比性质较强的数据集,可以采用左右分布的形式呈现差异性: ```python def draw_grouped_bar_chart(categories, group_a, group_b): """ 绘制分组(左右分布)柱状图 参数: categories (list): 类别名列表。 group_a (list): 第一组数据。 group_b (list): 第二组数据。 """ n_groups = len(categories) fig, ax = plt.subplots(figsize=(8, 6)) index = range(n_groups) bar_width = 0.35 rects1 = ax.bar([i - bar_width/2 for i in index], group_a, bar_width, label='Group A', color='lightcoral') rects2 = ax.bar([i + bar_width/2 for i in index], group_b, bar_width, label='Group B', color='dodgerblue') ax.set_xlabel('Categories') ax.set_ylabel('Scores') ax.set_title('Grouped Bar Chart Example') ax.set_xticks(index) ax.set_xticklabels(categories) ax.legend() plt.tight_layout() plt.show() group_a_scores = [12, 9, 14] group_b_scores = [10, 11, 13] draw_grouped_bar_chart(['Cat A', 'Cat B', 'Cat C'], group_a_scores, group_b_scores) ``` 这段代码利用偏移量使两个数据系列分开显示于同一坐标系下。 --- ### 总结 以上提供了三种不同的柱状图绘制方案,涵盖了基础柱状图、堆叠柱状图以及分组柱状图的应用场景。每种类型的实现均依赖于对 `plt.bar()` 函数及其附加参数的有效配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Y_ni

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值