轻松上手Matplotlib__复式(多类别)条形图篇(有数字标注)

Matplotlib 可能是 Python 2D-绘图领域使用最广泛的套件。它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。这里将会探索 matplotlib 的常见用法。

条形图:排列在工作表的列或行中的数据可以绘制到条形图中。

特点:绘制连离散的数据,能够一眼可看出各个数据的大小,比较数据之间的差别。(统计)

首先,我们分析下绘制柱状图代码:(基于Jupyter Notebook运行,Pycharm也可)

from matplotlib import pyplot as plt

#解决中文问题
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=True

a=["星球崛起3:终极之战","敦刻尔克","蜘蛛侠:英雄归来","战狼2"]

b_1=[15746,3331,4497,5319]
b_2=[12345,1556,2245,1688]
b_3=[2359,3999,2358,3622]

width_bar=0.2


x_1=list(range(len(a)))

#这里的目的是把条形图间隔开来,防止重叠,都加上width_bar的倍数
x_2=[i+width_bar for i in x_1]
x_3=[i+width_bar*2 for i in x_1]

#设置图片大小和分辨率,其中figure单位为英寸,dpi为分辨率
plt.figure(figsize=(20,8),dpi=80)

#设置X轴的刻度和字符串,步长为1
plt.xticks(x_2,a)

#plt.bar()用于画条形图
c_1=plt.bar(range(len(a)),b_1,width=width_bar,label="9月10号")
c_2=plt.bar(x_2,b_2,width=width_bar,label="9月11号")
c_3=plt.bar(x_3,b_3,width=width_bar,label="9月12号")


#用于设置数字标注
for k in c_1:
    height=k.get_height()
    plt.text(k.get_x() + k.get_width() / 2, height, str(height),fontsize=20, ha="center", va="bottom")
    
    
for k in c_2:
    height=k.get_height()
    plt.text(k.get_x() + k.get_width() / 2, height, str(height),fontsize=20, ha="center", va="bottom")

    
for k in c_3:
    height=k.get_height()
    plt.text(k.get_x() + k.get_width() / 2, height, str(height),fontsize=20, ha="center", va="bottom")
    
plt.xlabel("电影名字")
plt.ylabel("票房 单位:百万")
plt.title("万达电影院")
    
plt.legend()
plt.show()

图片效果:

在这里插入图片描述
在这里,其实是用到了单式条形图的多次输出,没有太大的难点,通过3次For循环输出对应的数字标注。

这里涉及到的一个知识点就是如何控制图形不重叠。例如蓝色跟蓝色的柱子间的间隔是1。

在这里插入图片描述
那么,1根柱子就是0.2的宽度,3根就是0.6;如果我们设置宽度为0.4;那么3根就是1.2,会发生重叠。

在这里插入图片描述
到此,复式(多类别)条形图内容大概差不多结束,说的比较简单,因为这都是基于单式(单类别)条形图基础上画出来的。所以如果不太懂的话,可以看看我单类别的条形图,比这里详细很多。

单式(单类别)条形图篇(详细讲解横轴、竖轴数字标注): https://blog.csdn.net/weixin_43682519/article/details/109424127

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值