Python matplotlib绘图模块操作大全

什么是Matplotlib ?

  • Matplotlib 是 Python 的绘图库,它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。
  • Matplotlib 可以用来绘制各种静态,动态,交互式的图表。
  • Matplotlib 是一个非常强大的 Python 画图工具,我们可以使用该工具将很多数据通过图表的形式更直观的呈现出来。
  • Matplotlib 可以绘制线图、散点图、等高线图、条形图、柱状图、3D 图形、甚至是图形动画等等。

Matplotlib 安装

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

Matplotlib Pyplot绘图模块

plot() 用于画图它可以绘制点和线

# 画单条线
plot([x], y, [fmt], *, data=None, **kwargs)
# 画多条线
plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)

参数说明:

  • x, y:点或线的节点,x 为 x 轴数据,y 为 y 轴数据,数据可以列表或数组。
  • fmt:可选,定义基本格式(如颜色、标记和线条样式)。
  • **kwargs:可选,用在二维平面图上,设置指定属性,如标签,线的宽度等。

应用示例

plot(x, y)        # 创建 y 中数据与 x 中对应值的二维线图,使用默认样式
plot(x, y, 'bo')  # 创建 y 中数据与 x 中对应值的二维线图,使用蓝色实心圈绘制
plot(y)           # x 的值为 0..N-1
plot(y, 'r+')     # 使用红色 +
  • 颜色字符:‘b’ 蓝色,‘m’ 洋红色,‘g’ 绿色,‘y’ 黄色,‘r’ 红色,‘k’ 黑色,‘w’ 白色,‘c’
    青绿色,‘#008000’ RGB 颜色符串。多条曲线不指定颜色时,会自动选择不同颜色。
  • 线型参数:‘‐’ 实线,‘‐‐’ 破折线,‘‐.’ 点划线,‘:’ 虚线。
  • 标记字符:‘.’ 点标记,‘,’ 像素标记(极小点),‘o’ 实心圈标记,‘v’ 倒三角标记,‘^’ 上三角标记,‘>‘右三角标记,’<’ 左三角标记…等等。

使用 pyplot 中的 scatter() 方法来绘制散点图

scatter() 方法语法格式如下:

matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, *, edgecolors=None, plotnonfinite=False, data=None, **kwargs)

参数说明:

  • x,y:长度相同的数组,也就是我们即将绘制散点图的数据点,输入数据。
  • s:点的大小,默认 20,也可以是个数组,数组每个参数为对应点的大小。
  • c:点的颜色,默认蓝色 ‘b’,也可以是个 RGB 或 RGBA 二维行数组。
  • marker:点的样式,默认小圆圈 ‘o’。
  • cmap:Colormap,默认 None,标量或者是一个 colormap 的名字,只有 c
    是一个浮点数数组的时才使用。如果没有申明就是 image.cmap。
  • norm:Normalize,默认 None,数据亮度在 0-1 之间,只有 c 是一个浮点数的数组的时才使用。
  • vmin,vmax::亮度设置,在 norm 参数存在时会忽略。
  • alpha::透明度设置,0-1 之间,默认 None,即不透明。
  • linewidths::标记点的长度。
  • edgecolors::颜色或颜色序列,默认为 ‘face’,可选值有 ‘face’, ‘none’, None。
  • plotnonfinite::布尔值,设置是否使用非限定的 c ( inf, -inf 或 nan) 绘制点。
  • **kwargs::其他参数。

marker 可以定义的符号如下:
Python matplotlib绘图模块操作大全_第1张图片
fmt 参数
fmt 参数定义了基本格式,如标记、线条样式和颜色。

fmt = '[marker][line][color]'

示例:

import matplotlib.pyplot as plt
import numpy as np

ypoints = np.array([6, 2, 13, 10])

plt.plot(ypoints, 'o:r')
plt.show()

线类型:
Python matplotlib绘图模块操作大全_第2张图片
颜色类型:
Python matplotlib绘图模块操作大全_第3张图片
标记大小与颜色
我们可以自定义标记的大小与颜色,使用的参数分别是:

  • markersize,简写为 ms:定义标记的大小。
  • markerfacecolor,简写为 mfc:定义标记内部的颜色。
  • markeredgecolor,简写为 mec:定义标记边框的颜色。

Matplotlib 轴标签和标题

使用 xlabel() 和 ylabel() 方法来设置 x 轴和 y 轴的标签。

import numpy as np
import matplotlib.pyplot as plt

x = np.array([1, 2, 3, 4])
y = np.array([1, 4, 9, 16])
plt.plot(x, y)

plt.xlabel("x - label")
plt.ylabel("y - label")

plt.show()

运行效果
Python matplotlib绘图模块操作大全_第4张图片
标题
使用 title() 方法来设置标题。

plt.title("TEST TITLE")

图形中文显示

Matplotlib 默认情况不支持中文,我们可以使用以下简单的方法来解决。

这里我们使用思源黑体,思源黑体是 Adobe 与 Google 推出的一款开源字体。
GitHub 地址:https://github.com/adobe-fonts/source-han-sans/tree/release/OTF/SimplifiedChinese
Python matplotlib绘图模块操作大全_第5张图片
示例

import numpy as np
from matplotlib import pyplot as plt
import matplotlib

# fname 为 你下载的字体库路径,注意 SourceHanSansSC-Bold.otf 字体的路径
zhfont1 = matplotlib.font_manager.FontProperties(fname="SourceHanSansSC-Bold.otf")

x = np.arange(1, 11)
y = 2 * x + 5
plt.title("测试", fontproperties=zhfont1)

# fontproperties 设置中文显示,fontsize 设置字体大小
plt.xlabel("x 轴", fontproperties=zhfont1)
plt.ylabel("y 轴", fontproperties=zhfont1)
plt.plot(x, y)
plt.show()

运行结果
Python matplotlib绘图模块操作大全_第6张图片

Matplotlib 饼图

使用 pyplot 中的 pie() 方法来绘制饼图

matplotlib.pyplot.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=0, radius=1, counterclock=True, wedgeprops=None, textprops=None, center=0, 0, frame=False, rotatelabels=False, *, normalize=None, data=None)[source]

参数说明:

  • x:浮点型数组,表示每个扇形的面积。
  • explode:数组,表示各个扇形之间的间隔,默认值为0。
  • labels:列表,各个扇形的标签,默认值为 None。
  • colors:数组,表示各个扇形的颜色,默认值为 None。
  • autopct:设置饼图内各个扇形百分比显示格式,%d%% 整数百分比,%0.1f 一位小数, %0.1f%% 一位小数百分比,
    %0.2f%% 两位小数百分比。
  • labeldistance:标签标记的绘制位置,相对于半径的比例,默认值为 1.1,如 <1则绘制在饼图内侧。
  • pctdistance::类似于 labeldistance,指定 autopct 的位置刻度,默认值为 0.6。
  • shadow::布尔值 True 或 False,设置饼图的阴影,默认为 False,不设置阴影。
  • radius::设置饼图的半径,默认为 1。
  • startangle::起始绘制饼图的角度,默认为从 x 轴正方向逆时针画起,如设定 =90 则从 y 轴正方向画起。
  • counterclock:布尔值,设置指针方向,默认为 True,即逆时针,False 为顺时针。
  • wedgeprops :字典类型,默认值 None。参数字典传递给 wedge
    对象用来画一个饼图。例如:wedgeprops={‘linewidth’:5} 设置 wedge 线宽为5。
  • textprops :字典类型,默认值为:None。传递给 text 对象的字典参数,用于设置标签(labels)和比例文字的格式。
  • center :浮点类型的列表,默认值:(0,0)。用于设置图标中心位置。
  • frame :布尔类型,默认值:False。如果是 True,绘制带有表的轴框架。
  • rotatelabels :布尔类型,默认为 False。如果为 True,旋转每个 label 到指定的角度。

示例

import matplotlib.pyplot as plt
import numpy as np

y = np.array([35, 25, 25, 15])

plt.pie(y,
        labels=['A','B','C','D'], # 设置饼图标签
        colors=["#d5695d", "#5d8ca8", "#65a479", "#a564c9"], # 设置饼图颜色
        explode=(0, 0.2, 0, 0), # 第二部分突出显示,值越大,距离中心越远
        autopct='%.2f%%', # 格式化输出百分比
       )
plt.title("Pie Test")
plt.show()

运行结果
Python matplotlib绘图模块操作大全_第7张图片

你可能感兴趣的:(人生苦短-我用Python,python)