闲暇之余,利用matplotlib来绘制条形图,针对2019年电影票房排行的情况,能够更加直观的看出票房排行情况,让人眼前一亮的赶脚,先来看看演示样例吧,之后会跟着matplotlib的代码,有喜欢的可以自己动手试一下。

横版条形图

正常版本条形图
正常版本条形图的代码如下:
'''
以2019年内地电影票房总排行榜电影名和总票房为例,做一个直方图
'''
import matplotlib.pyplotas plt
#电影名
movie_name = ["流浪地球","复仇者联盟4:终局之战","疯狂的外星人","飞驰人生","蜘蛛侠:英雄远征","大黄蜂","扫毒2天地对决","惊奇队长",
"比悲伤更悲伤的故事","哥斯拉2:怪兽之王","阿丽塔:战斗天使","反贪风暴4","熊出没·原始时代","大侦探皮卡丘","新喜剧之王",
"狮子王","千与千寻","绿皮书","白蛇:缘起","最好的我们"]
#总票房,单位:亿
movie_total_box_office = [46.81,42.05,21.83,17.03,13.46,11.38,10.78,10.25,9.46,9.26,8.88,7.88,7.09,6.34,
6.19,5.27,4.79,4.73,4.55,4.08]
#设置图形大小
plt.figure(figsize=(18,12),dpi=80)
#绘制条形图
plt.bar(range(len(movie_name)), movie_total_box_office,width=0.5,color='orange')#bar绘制正常的条形图,x轴对应movie_name, y轴对应movie_total_box_office
#设置字符串到x轴fontproperties="SimHei" 设置显示汉字(黑体)
plt.xticks(range(len(movie_name)), movie_name,fontproperties="SimHei",rotation=45)
step = []#初始x轴刻度
for iin range(50):#用for循环增加step的刻度值
step.append(i)
plt.yticks(step)
plt.grid(alpha=0.3)
#保存成图片
plt.savefig("./movie.png")
plt.show()
横版条形图的代码如下:
'''
以2019年内地电影票房总排行榜电影名和总票房为例,做一个横版直方图
'''
import matplotlib.pyplotas plt
#from matplotlib.font_manager import FontProperties
#font = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=14)
#电影名
movie_name = ["流浪地球","复仇者联盟4:终局之战","疯狂的外星人","飞驰人生","蜘蛛侠:英雄远征","大黄蜂","扫毒2天地对决","惊奇队长",
"比悲伤更悲伤的故事","哥斯拉2:怪兽之王","阿丽塔:战斗天使","反贪风暴4","熊出没·原始时代","大侦探皮卡丘","新喜剧之王",
"狮子王","千与千寻","绿皮书","白蛇:缘起","最好的我们"]
#总票房,单位:亿
movie_total_box_office = [46.81,42.05,21.83,17.03,13.46,11.38,10.78,10.25,9.46,9.26,8.88,7.88,7.09,6.34,
6.19,5.27,4.79,4.73,4.55,4.08]
#设置图形大小
plt.figure(figsize=(18,12),dpi=80)
#绘制横版条形图
plt.barh(range(len(movie_name)), movie_total_box_office,height=0.5,color='green')#bar绘制条形图,x轴对应movie_name, y轴对应movie_total_box_office
#设置字符串到y轴fontproperties="SimHei" 设置显示汉字(黑体)
plt.yticks(range(len(movie_name)), movie_name,fontproperties="SimHei")
step = []#初始x轴刻度
for iin range(50):#用for循环增加step的刻度值
step.append(i)
plt.xticks(step)
plt.grid(alpha=0.3)
#保存成图片
plt.savefig("./movie1.png")
plt.show()

