matplotlib库在Python中用于二维图表的绘制,一般用于基于程序的数据分析方向
目录
一、matplotlib的下载和导入
1. 下载matplotlib库
2.在python中导入matplotlib库
二、绘制折线图
1.绘制基本图表:plot
a)绘制含一条折线的图表的基本语法
b)绘制多条折线
2.图表的美化与丰富
a)对于整张图表进行设置
b)文本注释/数据点值显示
应用实例
不想写了[doge],如果觉得有帮助,还想看后面的,私信撅我催更
在cmd中运行
pip install matplotlib
或下载Anaconda的在Anaconda Prompt中运行
conda install matplotlib
在虚拟环境中下载用下列代码
conda install matplotlib -n [虚拟环境名]
matplotlib多配合numpy库一同使用(此处我们将这两个库都导入)
import matplotlib as plt
import numpy as np
plt.plot(x,y,flm)
x:自变量
y:因变量
flm:fmt参数可以设置线条的样式以及颜色
点线 | 实线 | 虚线 | 点划线 | ||||
- | -- | -. | : | ||||
白色 | 蓝色 | 绿色 | 红色 | 青色 | 品红 | 黄色 | 黑色 |
w | b | g | r | c | m | y | k |
也可用下面的color参数改变折线颜色
plt.plot("a","b","-",data=mydata,color='#893f23') #用颜色编号表示
plt.plot("a","b","-",data=mydata,color=(0.2,0.4,0.4,1)) #用RGBA颜色模式调制
用jupyter运行可以直接看到图像,其他的在程序后面加上来查看
plt.show()
PS:
1. plt.plot可以只传Y轴的值,如果只传Y轴的值,那么X轴就会默认使用range(0,Y的长度)
2. plt.plot的x和y参数不能够作为关键字参数来传递,只能作为位置参数来传。
3. plt.plot中的data参数可以为一个字典或者DataFrame对象,然后在x和y上指定这个列的名字,那么plot会自动读取。这里有一个细节,因为x,y,fmt都是在前面,所以如果只传x和y,那么可能会产生歧义,这时候我们可以多传一个空的参数作为fmt的参数,就不会有警告了。
eg:
#随机生成六座城市的气温并绘制折线图
#创建数据
cities = ['北京', '上海', '广州', '深圳', '杭州', '郑州']
x = np.arange(len(cities))
y = [np.random.randint(20,30) for x in range(len(cities))]
mydata = {
'a': x,
'b': y
}
# 绘制折线图
plt.plot('a','b','',data=mydata)
#plt.show
plt.plot(x1,y1,flm1
,x2,y2,flm2
,x3,y3,flm3)
#绘制三条折线
下面列举了一些在绘制图表时的可变参数,根据需求写就行,没有写的统一按默认值执行
注意!!:有些参数有重叠现象,会造成冲突导致其中的一些参数的执行结果被覆盖,所以参数用什么写什么
plt.plot('a','b','',data=mydata
,color=(0.4,0.1,0.1,1) #改变折线颜色
,marker='o' #改变数据点的形状
,markerfacecolor='r' #改变数据点的填充色
,markersize=5 #改变数据点的大小
,markeredgecolor='r' #改变数据点的边缘色
,linestyle='--' #改变折线样式
,linewidth=4 #改变折线宽度
,aa=Ture) #是否开启抗锯齿
实现小标题的功能我们会用到matplotlib库中的annotate函数
基础格式
plt.annotate(s,xy=(x,y),xytext=(x,y))
s要显示的注释内容
xy=注释指向的坐标
xytext=注释所在的坐标
可选参数
plt.annotate(s,xy=(x,y),xytext=(x+1,y-1)
,arrowprops=dict(facecolor='red', #arrowprops参数传入一个字典
arrowstyle='->', #用于自定义注释箭头的样式、颜色、宽度等属性
linewidth=2)
,fontsize=16 #改变文本字体大小
,color='r') #改变文本颜色
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
cities = ['北京', '上海', '广州', '深圳', '杭州', '郑州']
x = np.arange(len(cities))
y = [np.random.randint(20,30) for x in range(len(cities))]
mydata = {
'a': x,
'b': y
}
# 绘制折线图
plt.plot('a','b','',data=mydata,color=(0.4,0.1,0.1,1),
marker='o',
markerfacecolor='r',
markersize=5,
markeredgecolor='r')
for index,value in enumerate(y):
plt.annotate("%d℃"%(value),xy=(index,value),xytext=(index+1,value-1),
arrowprops=dict(facecolor='r', #arrowprops参数传入一个字典
arrowstyle='->', #用于自定义注释箭头的样式、颜色、宽度等属性
linewidth=5)
,fontsize=16 #改变文本字体大小
,color='b') #改变文本颜色
#plt.show()
运行结果