Matplotlib详解

  • 1.搭建Matplotlib环境
  • 1.1.使用pip下载Matplotlib
  • 1.2.使用easy_install下载Matplotlib
  • 1.3.在网站上下载Matplotlib
  • 2.绘制两个点
  • 3.绘制折线图
  • 3.1.普通折线图
  • 3.2.调整线条粗细
  • 4.在图中添加注释
  • 5.修改表的坐标
  • 6.绘制两条线条
  • 7.线条、颜色和标记
  • 7.1.常用的颜色
  • 7.2.常用的线条
  • 7.3.标记
  • 8.图例


1.搭建Matplotlib环境

1.1.使用pip下载Matplotlib

Matplotlib可以使用pip下载:

pip install matplotlib

下载过慢可以使用国内镜像:

pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple

还可以使用:

python -m pip install matplotlib

如果第三种下载方式报错,说明你还没有将python设为环境变量,可以使用第1、2种方法替代。

1.2.使用easy_install下载Matplotlib
easy_install matplotlib



1.3.在网站上下载Matplotlib

上述两种方法都比较简单,但是如果在使用过程中,可能会不支持python的部分版本,这时我们可以去 PyPi 下载,点入链接后会看到matplotlib·PyPi页面:

注意 :以上连接如无法打开,请在浏览器里输入网址https://pypi.org/project/matplotlib

python兼容matplotlib python3.9 matplotlib_python兼容matplotlib


点击左下角的 Download files 会看到右侧有一些版本号:

python兼容matplotlib python3.9 matplotlib_python兼容matplotlib_02


在这里面找到你需要的版本。



下载完成后打开cmd,输入:

python -m pip install --user 版本号

上述的版本号是你在下载Matplotlib的时候的版本号,比如说我下的是“matplotlib-3.2.2-cp39-cp39-win_amd64.whl”,那么我就需要输入:

python -m pip install --user matplotlib-3.2.2-cp39-cp39-win_amd64.whl





2.绘制两个点

我们可以使用scatter()函数来绘制两个点,它的参数是点坐标的位置(x和y),传入的是一个列表。

代码部分

import matplotlib.pyplot as plt # 引入模块,并缩写为plt

x1 = [1, 2] # 设置第一个点的坐标,x坐标是2,y坐标是1
y2 = [2, 4] # 设置第二个点的坐标,x坐标是1,y坐标是2
plt.scatter(x1, y2) # 绘制散点图

plt.show() # 显示绘图

运行结果

python兼容matplotlib python3.9 matplotlib_数据可视化_03




3.绘制折线图

通过plot()函数绘制折线图,参数是折线图每一个点所在的y坐标

3.1.普通折线图

代码部分

import matplotlib.pyplot as plt # 引入模块,并缩写为plt

plt.plot([8, 7, 9 ,3, 5, 3, 7, 9]) # 绘制折线图

plt.show() # 显示绘图

运行结果

python兼容matplotlib python3.9 matplotlib_ico_04


3.2.调整线条粗细

通过plot()的linewidth参数来调整线条粗细:
代码部分

import matplotlib.pyplot as plt # 引入模块,并缩写为plt

plt.plot([8, 7, 9 ,3, 5, 3, 7, 9], linewidth = 10) # 绘制折线图

plt.show() # 显示绘图

运行结果

python兼容matplotlib python3.9 matplotlib_折线图_05




4.在图中添加注释

title()函数添加标题,xlabel()函数,ylabel()函数。以上三个函数中fontsize参数可以调整字体
代码部分

import matplotlib.pyplot as plt # 引入模块,并缩写为plt


plt.plot([50, 70, 90 ,80, 55, 39, 79, 90], linewidth = 10) # 绘制折线图
plt.title("title", fontsize = 25)
plt.xlabel("y", fontsize = 15)
plt.ylabel("x", fontsize = 15)

plt.show() # 显示绘图

运行结果

python兼容matplotlib python3.9 matplotlib_数据可视化_06


注意:如果需要显示中文字体,需要加上

plt.rcParams['font.sans-serif']=['SimHei'] #这里使用的是雅黑字体
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

运行结果

python兼容matplotlib python3.9 matplotlib_python兼容matplotlib_07




5.修改表的坐标

可以在plot函数线条坐标的前面传入一个列表,代表x坐标的值:
代码部分

import matplotlib.pyplot as plt # 引入模块,并缩写为plt

plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

plt.plot(["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月"] ,
         [50, 70, 90 ,80, 55, 39, 79, 90], linewidth = 10) # 绘制折线图
plt.title("销量", fontsize = 25)
plt.xlabel("月份", fontsize = 15)
plt.ylabel("销量/箱", fontsize = 15)

plt.show() # 显示绘图

运行结果

python兼容matplotlib python3.9 matplotlib_数据可视化_08




6.绘制两条线条

代码部分

import matplotlib.pyplot as plt # 引入模块,并缩写为plt

plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

plt.plot(["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月"] ,
         [50, 70, 90 ,80, 55, 39, 79, 90],
         ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月"],
         [40, 80, 60, 80, 70, 20, 90, 50],
         linewidth = 10,) # 绘制折线图
plt.title("销量", fontsize = 25)
plt.xlabel("月份", fontsize = 15)
plt.ylabel("销量/箱", fontsize = 15)

plt.show() # 显示绘图

运行结果

python兼容matplotlib python3.9 matplotlib_python_09




7.线条、颜色和标记

7.1.常用的颜色

如果需要设置颜色,可以在plot函数里面设置,常用的颜色有:

颜色字符

颜色说明

b

蓝色

c

青色

k

黑色

r

红色

y

黄色

g

绿色

实例

import matplotlib.pyplot as plt # 引入模块,并缩写为plt

plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

plt.plot(["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月"] ,
         [50, 70, 90 ,80, 55, 39, 79, 90],"b",
         ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月"],
         [40, 80, 60, 80, 70, 20, 90, 50],"g",
         linewidth = 10,) # 绘制折线图
plt.title("销量", fontsize = 25)
plt.xlabel("月份", fontsize = 15)
plt.ylabel("销量/箱", fontsize = 15)

plt.show() # 显示绘图

运行结果

python兼容matplotlib python3.9 matplotlib_python_10

7.2.常用的线条

注意:此处是和颜色写在一个字符串内,写在颜色后面

字符

说明

-

直线


虚线(两个-)

-.

虚点线

:

点线

实例

import matplotlib.pyplot as plt # 引入模块,并缩写为plt

plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

plt.plot(["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月"] ,
         [50, 70, 90 ,80, 55, 39, 79, 90],"b-.",
         ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月"],
         [40, 80, 60, 80, 70, 20, 90, 50],"g--",
         linewidth = 10,) # 绘制折线图
plt.title("销量", fontsize = 25)
plt.xlabel("月份", fontsize = 15)
plt.ylabel("销量/箱", fontsize = 15)

plt.show() # 显示绘图

运行结果

python兼容matplotlib python3.9 matplotlib_python_11

7.3.标记

注意:标记是写在线条后面

符号

说明

.

点标记

o

圆标记

s

方形标记

p

五角星标记

+

加号标记

-

减号标记

实例

import matplotlib.pyplot as plt # 引入模块,并缩写为plt

plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

plt.plot(["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月"] ,
         [50, 70, 90 ,70, 55, 39, 79, 90],"-s",
         ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月"],
         [40, 80, 60, 80, 70, 20, 90, 50],"-o",
         linewidth = 3,) # 绘制折线图
plt.title("销量", fontsize = 25)
plt.xlabel("月份", fontsize = 15)
plt.ylabel("销量/箱", fontsize = 15)

plt.show() # 显示绘图

运行结果

python兼容matplotlib python3.9 matplotlib_python_12




8.图例

虽然前面建立的列表已经很好了,但是缺乏每一根线条的意义所以我们需要创建图例:
代码部分

import matplotlib.pyplot as plt # 引入模块,并缩写为plt

plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

line1 = plt.plot(["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月"] ,
         [50, 90, 90 ,70, 55, 39, 79, 90],"-s", label = "1号超市") # 绘制折线图
line2 = plt.plot(["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月"],
         [40, 80, 60, 80, 70, 20, 90, 50],"-o", label = "2号超市")
plt.title("销量", fontsize = 25)
plt.xlabel("月份", fontsize = 15)
plt.ylabel("销量/箱", fontsize = 15)
plt.legend(loc = "best")

plt.show() # 显示绘图

执行结果

python兼容matplotlib python3.9 matplotlib_折线图_13


其中它的loc参数是指图例的位置,best是图中最好的位置,也就是没有值的位置,loc参数的可选值如下:

可选值

说明

best

最好的位置

upper right

右上角

upper left

左上角

lower left

左下角

lower right

右下角

center left

左侧

center right

右侧

lower center

下面

upper center

上面

center

画面正中间