Python库matplotlib的使用总结

matplotlib库在Python中用于二维图表的绘制,一般用于基于程序的数据分析方向

目录

一、matplotlib的下载和导入

1. 下载matplotlib库

2.在python中导入matplotlib库

二、绘制折线图

1.绘制基本图表:plot

a)绘制含一条折线的图表的基本语法

b)绘制多条折线

2.图表的美化与丰富

a)对于整张图表进行设置

b)文本注释/数据点值显示

应用实例

 不想写了[doge],如果觉得有帮助,还想看后面的,私信撅我催更


一、matplotlib的下载和导入


1. 下载matplotlib库

 在cmd中运行

pip install matplotlib

或下载Anaconda的在Anaconda Prompt中运行

conda install matplotlib 

在虚拟环境中下载用下列代码
conda install matplotlib -n [虚拟环境名]

2.在python中导入matplotlib库

        matplotlib多配合numpy库一同使用(此处我们将这两个库都导入)

import matplotlib as plt
import numpy as np

二、绘制折线图


1.绘制基本图表:plot

a)绘制含一条折线的图表的基本语法

plt.plot(x,y,flm)

x:自变量

y:因变量

flm:fmt参数可以设置线条的样式以及颜色

        

flm的常见参数(颜色和参数可组合)
点线 实线 虚线 点划线
- -- -.
白色 蓝色 绿色 红色 青色 品红 黄色 黑色
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

b)绘制多条折线

plt.plot(x1,y1,flm1
        ,x2,y2,flm2
        ,x3,y3,flm3)

#绘制三条折线

2.图表的美化与丰富

a)对于整张图表进行设置

下面列举了一些在绘制图表时的可变参数,根据需求写就行,没有写的统一按默认值执行

注意!!:有些参数有重叠现象,会造成冲突导致其中的一些参数的执行结果被覆盖,所以参数用什么写什么

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)                  #是否开启抗锯齿

b)文本注释/数据点值显示

实现小标题的功能我们会用到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()

运行结果

Python库matplotlib的使用总结_第1张图片

 不想写了[doge],如果觉得有帮助,还想看后面的,私信撅我催更

 

你可能感兴趣的:(python,matplotlib,开发语言)