Python_AI库: Matplotlib绘制条形图应用实例

本文默认读者已具备以下技能:

  • 对商业环境有简单了解
  • 熟悉Python基础语法,能自行阅读python代码块
  • 熟悉Vscode等编辑工具的应用

前面的文章中我们都是绘制的折线图。条形图作为一种直观展示分类数据的方式,在现实应用环境中也是十分常见的,在数据分析中扮演着重要的角色。本实例将展示如何使用Matplotlib库绘制条形图,以XX门店4月份每日销售额及利润为例,详细解释条形图的绘制过程。
在这里插入图片描述

条形图与折线图绘制方法十分类似,最大的区别就是条形图使用了bar方法,完整代码如下:

from matplotlib import pyplot as plt  
from matplotlib import font_manager  
import random  
  
'''
准备数据
x轴准备30个数字,用来表示30天
Y轴由2列数据构成:销量和利润
'''
# 获取X,Y轴数据  
x = range(1, 31)  # X轴表示日期    
# 生成销量数据  
sales = [random.randint(3000, 5000) for _ in x]   
# 生成利润数据,假设每日利润基于当日销量的20%至33%随机选取  
profits = [i * random.uniform(0.2, 0.33) for i in sales]  
  
'''
丰富图表细节
'''
# 设置画布信息 
plt.figure(figsize=(20, 8), dpi=80)    
# 设置中文字体  
my_font = font_manager.FontProperties(fname=r"C:\Windows\Fonts\simsun.ttc")    
# 设置X坐标轴的刻度显示  
plt.xticks(x, [f'{i}号' for i in x], fontproperties=my_font)  
# 添加标题及x,y轴描述信息  
plt.xlabel('日    期', fontproperties=my_font, fontsize=10)  
plt.ylabel('金    额(单位:元)', fontproperties=my_font, fontsize=10)  
plt.title('XX门店4月份每日销售额及利润', fontproperties=my_font, fontsize=18)   
# 绘制网格  
plt.grid(alpha=0.4)  

'''
绘制条形图这里使用的是plt.bar方法,与之对应的折线图是plt.plot方法

特别注意的代码:
plt.bar([i + width for i in x], profits, width=width, label='利润', color='green', edgecolor='black') 
第二列利润所在X轴的刻度 = 第一列刻度位置 +  图形宽度

'''
# 绘制销量条形图(第一列)  
width = 0.35  # 条形图的宽度  
plt.bar(x, sales, width=width, label='销量', color='orange', edgecolor='black')    
# 绘制利润条形图(第二列,与销量条形图并列)  
plt.bar([i + width for i in x], profits, width=width, label='利润', color='green', edgecolor='black')  
  
# 添加图例  
plt.legend(prop=my_font)  
  
# 展示图表  
plt.show()  
  
# 保存图形文件到当前路径下  
plt.savefig('my_plot.jpg')

首先,我们需要准备数据。在这个例子中,我们将模拟XX门店4月份30天的每日销售额和利润数据。销售额通过随机生成3000至5000之间的整数来模拟,而利润则基于销售额的20%至33%随机选取。这些数据将作为我们条形图的Y轴数据。

接下来,我们设置画布的信息,包括画布的大小和DPI。DPI(每英寸点数)决定了图形的清晰度,较高的DPI可以生成更清晰的图形。然后,我们设置中文字体,以便在图表中正确显示中文标签和标题。Matplotlib默认不支持中文名称,因此我们需要设置字体属性。

在绘制条形图之前,我们还需要设置X坐标轴的刻度显示。这里,我们将X轴刻度设置为1至30号,对应30天的日期。同时,我们添加了标题和X、Y轴的描述信息,使图表更加完整和易于理解。

绘制条形图时,我们使用了Matplotlib的plt.bar方法。为了将销量和利润分成两列显示,我们设置了条形图的宽度,并为利润条形图的X轴位置进行了调整。具体来说,利润条形图的X轴位置等于销量条形图的位置加上条形图的宽度。这样,销量和利润条形图就会并列显示,形成两列。

在绘制完条形图后,我们添加了图例,以便区分销量和利润条形图。图例中的标签和颜色与条形图对应,使得图表更加直观。

最后,我们展示了绘制的条形图,并保存为图片文件。通过调用plt.show()方法,我们可以在窗口中查看生成的条形图。而plt.savefig('my_plot.jpg')则将图表保存为JPEG格式的图片文件,方便后续使用和分享。

通过这个实例,我们可以看到Matplotlib库在绘制条形图方面的同样快捷。通过简单的代码,我们可以轻松地生成美观且易于理解的条形图,从而更好地展示和分析数据。无论是数据分析师还是AI爱好者,掌握Matplotlib库的使用都将对提升数据可视化能力大有裨益。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值