python用matplotlib画五角星_matplotlib的读书报告:

本文详细介绍了Python的Matplotlib库,包括如何创建和定制2D图形,如折线图、散点图、直方图和饼图。通过实例展示了绘制不同城市温度变化图、双城温度对比图、电影票房对比柱状图以及电影时长分布直方图等,还涵盖了图形的交互性、颜色风格设定和图例添加等内容。
摘要由CSDN通过智能技术生成

1. Matplotlib简介

Matplotlib是Python的一个2D图形库,能够生成各种格式的图形(诸如折线图,散点图,直方图等等),界面可交互(可以利用鼠标对生成图形进行点击操作),

同时该2D图形库跨平台,即既可以在Python脚本中编码操作,也可以在Jupyter Notebook中使用,以及其他平台都可以很方便的使用Matplotlib图形库,而且生成图形质量较高,

甚至可以达到出版级别。需要注意的是,在相关Python软件中调用Matplotlib图形库时,需要利用shell进行单独安装,假如使用Jupyter Notebook时,相关图形库已直接配置在软件内,

不过其生成的图形无法进行交互,而是内嵌在Jupyter Notebook生成界面内。

绘制温度图--显示上海的温度变化图

importrandomimportmatplotlib.pyplot as plt#添加这两行让中文字体正常显示

plt.rcParams['font.sans-serif']=['SimHei']#显示中文标签

plt.rcParams['axes.unicode_minus']=False#1.准备数据

x = range(60)

y_shanghai= [random.uniform(15, 18) for i inx]#2.创建画布

plt.figure(figsize=(20,8), dpi=80)#绘制图像

plt.plot(x, y_shanghai)#准备x轴的刻度说明

x_label = ['11点{}分'.format(i) for i inx]

plt.xticks(x[::5],x_label[::5])

plt.yticks(range(0,40,5))#添加网格

plt.grid(linestyle="--",alpha=0.5)#添加描述信息

plt.xlabel('时间变化')

plt.ylabel('温度变化')

plt.title('上海11-12点每分钟的温度变化图')#显示图

plt.show()

2155187-20201121231350539-401025157.png

同时显示两个城市的温度变化图

importrandomimportmatplotlib.pyplot as plt#添加这两行让中文字体正常显示

plt.rcParams['font.sans-serif']=['SimHei']#显示中文标签

plt.rcParams['axes.unicode_minus']=False#1.准备数据

x = range(60)

y_shanghai= [random.uniform(15, 18) for i inx]

y_beijing= [random.uniform(1, 3) for i inx]#2.创建画布

plt.figure(figsize=(20,8), dpi=80)#绘制图像

plt.plot(x, y_shanghai)

plt.plot(x, y_beijing)#准备x轴的刻度说明

x_label = ['11点{}分'.format(i) for i inx]

plt.xticks(x[::5],x_label[::5])

plt.yticks(range(0,40,5))#添加网格

plt.grid(linestyle="--",alpha=0.5)#添加描述信息

plt.xlabel('时间变化')

plt.ylabel('温度变化')

plt.title('上海、北京11-12点每分钟的温度变化图')#显示图

plt.show()

2155187-20201121231515687-689446189.png

设置图形风格 颜色: r(红) g(绿) b(蓝) w(白) c(青) m(洋红) y(黄) k(黑)

风格字符:

实线 -- 虚线 -. 点划线 : 点虚线 '' 留空 空格

注意:如果只在plt.plot()中设置label还不能显示出图例,还需要通过plt.legend()将图例显示出来 plt.legend(loc="best")

Location String Location Code 'best' 0 'upper right' 1 'upper left' 2 'lower left' 3 'lower right' 4 'right' 5 'center' 6

散点图的绘制

importmatplotlib.pyplot as plt#准备数据

x = [1, 3, 6, 6, 7, 9, 5]

y= [2, 3, 5, 6, 8, 2, 3]#绘制画布

plt.figure(figsize=(20,8),dpi=80)#绘制散点图

plt.scatter(x, y)#显示图像

plt.show()

2155187-20201121231707345-517175115.png

绘制柱状图--显示每部电影的票房

importmatplotlib.pyplot as plt#1.准备数据

movie_name = ['雷神','正义联盟','东方快车谋杀案','寻梦环游记','全球风暴','降魔记','追捕']

tickets= [73853, 57767, 22354, 15969, 14839, 8725, 8318]#2. 创建画布

plt.figure(figsize=(20, 8),dpi=80)#3.绘制柱状图

x_ticks =range(len(movie_name))

plt.bar(x_ticks, tickets, color=['b','r','g','y','c','m','y'])#修改x刻度

plt.xticks(x_ticks, movie_name)#添加标题

plt.title('电影票房收入对比')#显示网格

plt.grid(linestyle='--',alpha=0.5)#4.显示图像

plt.show()

2155187-20201121231835178-2105921546.png

电影上映首日和首周的票房对比

importmatplotlib.pyplot as plt#1.准备数据

movie_name = ['雷神','正义联盟','东方快车谋杀案','寻梦环游记']

first_day= [10587, 10062.5, 1275.7, 1223]

first_weekend= [24564.5, 32755.6, 83245.9, 7325]

x=range(len(movie_name))

plt.figure(figsize=(20,8),dpi=80)

plt.bar(x, first_day, width=0.2, label='首日票房')

plt.bar([i+0.2 for i in x],first_weekend, width=0.2, label='首周票房')#显示图例

plt.legend()#修改X轴刻度显示

plt.xticks([i+0.1 for i inx],movie_name)

plt.show()

2155187-20201121231946405-1679559404.png

绘制直方图

#需求:电影时长分布状况#1.准备数据

time = [131,94,143,126,129,117,138,107,113,119,95,175,127,147]#2.绘制画布

plt.figure(figsize=(20,8),dpi=80)#3.绘制直方图

distance = 2group_num= int((max(time) - min(time))/distance)

plt.hist(time, bins=group_num,density=True)#修改x轴刻度

plt.xticks(range(min(time),max(time)+2,distance))#添加网格

plt.grid(linestyle='--',alpha=0.5)#4.显示图像

plt.show()

2155187-20201121232132045-1071151083.png

饼图

importmatplotlib.pyplot as plt#1.准备数据

movie_name = ['雷神','正义联盟','东方快车谋杀案','寻梦环游记','追捕','亲爱的']

place_count= [42875, 43756, 35673, 23543, 25477, 46823]#2.绘制画布

plt.figure(figsize=(20,8),dpi=80)#3.绘制饼图

plt.pie(place_count, labels=movie_name, colors=['b','r','g','y','m','k'])

plt.axis('equal')

plt.legend()#4.显示图像

plt.show()

2155187-20201121232247111-1659784777.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值