大家好,今天我将分享如何使用matplotlib中的条形图做一个小项目:三天三部电影票房。
昨天回顾:
1.学习如何绘制带方差的条形图
2.学习了zip()函数的概念及其使用
3.学习了如何表示数据的波动
忘了的可以回顾一下第八天的内容:matplotlib第八天:学习如何绘制带方差的条形图 - 掘金 (juejin.cn)
好的,那么我们现在开始进入正题:
from matplotlib import pyplot as plt
real_names=["film1","film2","film3"]
real_num1=[5453,7548,6543]
real_num2=[1840,4013,3421]
real_num3=[1080,1673,2342]
plt.figure(figsize=(8,6),dpi=80)
#调用bar绘制
x=range(len(real_names))
width=0.3
plt.bar(x,real_num1,width=width,color='g',label=real_names[0])
plt.bar([i+width for i in x],real_num2,color='b',width=width,label=real_names[1])
plt.bar([i+2*width for i in x],real_num3,color='r',width=width,label=real_names[2])
#设置xlabel ylabel
plt.xlabel("days")
plt.ylabel("numbers")
#设置title
plt.title("3day3film")
x_ticks=[f'{i+1}day' for i in x]
plt.xticks([i+width for i in x],x_ticks)
#添加图例
plt.legend(loc="upper left")
real_names=["film1","film2","film3"]
real_num1=[5453,7548,6543]
real_num2=[1840,4013,3421]
real_num3=[1080,1673,2342]
1.这几行代码定义了所绘制条形图的三组数据。real_names列表包含了三个电影的名称,real_num1、real_num2、real_num3分别是与这三个电影相关的数值数据。(这些数据均可以自己定义)
plt.figure(figsize=(8,6),dpi=80)
2.设置画布大小figure(figsize=(w,h)),下面为大家介绍一下figure()这个函数:
figsize=(8, 6):这是figure()函数的一个参数,用于指定图形的尺寸。这里的(8, 6)表示图形的宽度为 8 英寸,高度为 6 英寸。你可以根据需要调整这两个值来控制图形的大小。dpi=80:这是figure()函数的另一个参数,用于指定图形的分辨率,即每英寸的像素数(dots per inch)。这里的dpi=80表示每英寸有 80 个像素。较高的分辨率可以提高图形的清晰度,但也会增加文件大小。
x = range(len(real_names))
width = 0.3
3.这两行代码定义了变量x和width。x是一个包含real_names列表长度的可迭代对象,用于表示x轴的位置。width表示每个柱形的宽度,设置为0.3。
plt.bar(x, real_num1, width=width, color='g', label=real_names[0])
plt.bar([i + width for i in x], real_num2, color='b', width=width, label=real_names[1])
plt.bar([i + 2 * width for i in x], real_num3, color='r', width=width, label=real_names[2])
这几行代码使用plt.bar函数绘制了三组柱形图。第一行绘制了real_num1对应的柱形图,第二行绘制了real_num2对应的柱形图,第三行绘制了real_num3对应的柱形图。每个柱形图的位置通过在x的基础上加上一定的偏移量来确定,宽度为width,颜色分别为绿色、蓝色和红色。每组柱形图都有一个标签,标签内容来自real_names列表中对应位置的电影名称。
plt.xlabel("days")
plt.ylabel("numbers")
这两行代码分别设置了x轴和y轴的标签,x轴标签为"days",y轴标签为"numbers"。
plt.title("3day3film")
这行代码设置了图表的标题为"3day3film"。
x_ticks = [f'{i + 1}day' for i in x]
plt.xticks([i + width for i in x], x_ticks)
这两行代码用于设置x轴刻度的位置和标签。首先,通过列表推导式生成一个新的列表x_ticks,其中每个元素为形如"xday"的字符串,X为对应的天数。然后,使用plt.xticks函数将x轴的刻度位置设置为在原始位置上加上width的偏移量,刻度标签设置为x_ticks中的字符串。
plt.legend(loc="upper left")
这行代码添加了一个图例,并将其位置设置为左上角。
最后用plt.show()将三天三部电影票房的条形图表示出来就行了。
今天我们做了一个小项目,复习了许多以前学过的东西。
- 设置画布大小figure()
- 复习了设置xlabel ylabel
- 复习了plt.legend()如何添加图例及图例的位置
- 复习了如何设置了图表的标题
好了,今天就讲到这里了,希望与各位一起学习数据分析,有问题可以在评论区提问,我非常愿意与大家一同探讨