🐚作者简介: 苏凉(在python路上)
🐳博客主页: 苏凉.py的博客
👑名言警句: 海阔凭鱼跃,天高任鸟飞。
📰要是觉得博主文章写的不错的话,还望大家三连支持一下呀!!!
👉关注✨点赞👍收藏📂
========================================================================
在上一篇matplotlib的基础绘图中我们学习了以下内容:
1.绘制折线图(plt.plot)
2.设置图片的大小和分辨率(plt.figure)
3.实现了图片的保存(plt.savefig)
4.设置xy轴上的刻度和字符串(xticks,yticks)
5.解决了刻度系数和密集的问题(xticks,yticks)
6.设置了xy轴以及标题的描述(xlable,ylable,title)
7.设置了中文显示(font_manager,fontproperties)
8.设置折线图线条的样式(color,linestyle,linewidth,alpha)
9.添加水印(fig.text())
详情可以点击上面链接回顾呀!!
在本篇文章中我们将利用以上知识点来学习如何利用matplotlib来绘制散点图,条形图,直方图
==============================================================================
实例:
题目:绘制5月份和10月份的温度变化图(散点图)温度数据如下:
5月[[11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,24,25,26
] 10月[[26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,17,10,11,9,10,8,6
]
若想在图片中显示中文,那么我们需要在前面设置字体
my_font = font_manager.FontProperties(fname='./msyh.ttc')
plt.figure(figsize=(20,8),dpi=80)
这里一个月为31天,为了不重复这里10月份的需要设置为41-72。赋值时减去40即可。
x_5 = range(1,32)
x_10 = range (41,72)
y_5 = [11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,24,25,26]
y_10 = [26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,17,10,11,9,10,8,6]
在上篇中我们提到的折线图用的是plot方法,而我们要绘制散点图时则需要用到scatter的方法。
plt.scatter(x_5,y_5,label = '5月份')
plt.scatter(x_10,y_10,label = '10月份')
plt.legend(loc= "upper left", prop = my_font)
plt.xlabel('时间',fontproperties = my_font)
plt.ylabel('温度',fontproperties = my_font)
plt.title('5月和10月气温变化散点图',fontproperties = my_font)
x_totle =list(x_5) + list(x_10)
x_ticks_label = ['5月{}日'.format(i) for i in x_5]
x_ticks_label += ['10月{}日'.format(i-40) for i in x_10]
rotation设置描述信息的倾斜角度
plt.xticks(x_totle[::1],x_ticks_label[::1],fontproperties = my_font,rotation = 45)
plt.text(
x = 25.5,y= 15,
s = '苏凉.py' ,fontproperties = my_font,
color = 'b' ,fontsize = 40,
ha='center', va='center', alpha=0.09
)
plt.savefig('./散点图.png')
plt.show()
from matplotlib import pyplot as plt
from matplotlib import font_manager
设置字体
my_font = font_manager.FontProperties(fname='./msyh.ttc')
设置图片大小
plt.figure(figsize=(20,8),dpi=80)
设置xy轴的数值
x_5 = range(1,32)
x_10 = range (41,72)
y_5 = [11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,24,25,26]
y_10 = [26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,17,10,11,9,10,8,6]
使用scatter方法绘制散点图
plt.scatter(x_5,y_5,label = '5月份')
plt.scatter(x_10,y_10,label = '10月份')
添加图例
plt.legend(loc= "upper left", prop = my_font)
设置xy轴以及标题的描述信息
plt.xlabel('时间',fontproperties = my_font)
plt.ylabel('温度',fontproperties = my_font)
plt.title('5月和10月气温变化散点图',fontproperties = my_font)
设置xy的刻度
x_totle =list(x_5) + list(x_10)
x_ticks_label = ['5月{}日'.format(i) for i in x_5]
x_ticks_label += ['10月{}日'.format(i-40) for i in x_10]
rotation设置描述信息的倾斜角度
plt.xticks(x_totle[::1],x_ticks_label[::1],fontproperties = my_font,rotation = 45)
添加水印
plt.text(
x = 25.5,y= 15,
s = '苏凉.py' ,fontproperties = my_font,
color = 'b' ,fontsize = 40,
ha='center', va='center', alpha=0.09
)
保存图片
plt.savefig('./散点图.png')
#展示图片
plt.show()
运行结果:
==============================================================================
绘制条形图需要用到bar方法我们以上一个温度散点图为例修改一下scatter方法即可
plt.bar(x_5,y_5,label = '5月份')
plt.bar(x_10,y_10,label = '10月份')
运行结果:
若我们需要将图形横过来则需要用到barh方法
plt.barh(x_5,y_5,label = '5月份')
plt.barh(x_10,y_10,label = '10月份')
设置y轴描述信息
plt.yticks(x_totle[::1],x_ticks_label[::1],fontproperties = my_font)
运行结果:
==============================================================================
下面以求一个列表中的数字的出现次数为例:该列表为 [10,15,9,20,15,45,65,25,15,78,65,32,32,45,65,10,9,45,85,74,62,54,62,74,65,45,10,102,105,102,105,107,45,65,95]
my_font = font_manager.FontProperties(fname= './msyh.ttc')
最后
不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~
给大家准备的学习资料包括但不限于:
Python 环境、pycharm编辑器/永久激活/翻译插件
python 零基础视频教程
Python 界面开发实战教程
Python 爬虫实战教程
Python 数据分析实战教程
python 游戏开发实战教程
Python 电子书100本
Python 学习路线规划