matplotlib使用总结1

matplotlib 是一个用于创建静态、动态和交云图的 Python 绘图库。它可以用于 Python 脚本、Python 和 IPython shell、Jupyter 笔记本、web 应用服务器以及四个图形用户界面工具包中。matplotlib 尝试让简单的事情更简单,让困难的事情成为可能。你可以生成线图、柱状图、误差线图、散点图、直方图等许多不同格式的图表。

import matplotlib.pyplot as plt
import numpy as np

plt.plot 折线图

matplotlib.pyplot.plot(*args, scalex=True, scaley=True, data=None, **kwargs)

*args:可以是一个或多个表达 x, y 值的数组。也可以通过提供 x, y, ‘format’ 的组合来控制线型和颜色。‘format’ 是一个字符串,用于指定颜色和线型,例如 ‘ro-’ 表示红色实线带圆点标记。

scalex, scaley:布尔值,用于确定是否自动缩放 x 轴或 y 轴的范围以适应数据的范围。

data:可选参数,如果提供,它是一个字典,用于指定通过字符串选择的变量来绘图。

**kwargs:关键字参数,用于指定绘图属性,如线条颜色(color)、线型(linestyle)、线宽(linewidth)、标记(marker)、标记大小(markersize)、标记颜色(markerfacecolor)等。

常用参数和示例

  • 颜色(color):设置线的颜色,例如 color=‘green’ 或 color=‘#006400’。
  • 线型(linestyle):设置线的样式,如实线(‘-’)、虚线(‘–’)、点线(‘-.’)、点虚线(‘:’)等。
  • 标记(marker):在每个数据点上设置标记,例如圆形(‘o’)、方形(‘s’)、星形(‘*’)等。
  • 线宽(linewidth):设置线的宽度,浮点数表示。 标签(label):设置图例的标签文本。
plt.plot(x, y, color='red', linestyle='--', marker='o', label='Data 1')
plt.legend()
plt.title('Custom Plot')
plt.xlabel('x axis')
plt.ylabel('y axis')
plt.show()

plt.scatter 散点图

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

x, y:长度相同的数组,分别表示散点的 x 坐标和 y 坐标。

s:标量或数组形式,可选。表示点的大小。如果是数组,每个点的大小根据数组中的值来确定。
c:颜色,可选。可以是单个颜色格式的字符串,也可以是一系列颜色。
marker:标记样式,可选。matplotlib 支持多种点的标记样式,例如 'o' 表示圆圈,'s' 表示正方形等。
cmap:Colormap,可选。当 c 是一个浮点数数组时,cmap 将用于映射到颜色。
norm:Normalize 实例,可选。用于在数据和颜色映射之间进行归一化。
alpha:标量,可选。点的透明度。
linewidths:标量或数组形式,可选。点的边缘宽度。
edgecolors:颜色或颜色序列,可选。点的边缘颜色。
plotnonfinite:布尔值,可选。是否绘制非有限数(NaN、INF、-INF)的点。
data:字典形式的 data 参数,可选。如果给定,x 和 y 的值可以通过字符串键从中提取。
**kwargs:其他关键字参数,可以用于设置更多的属性(如边缘颜色、点的形状等)。

常用参数和示例

import numpy as np

# 生成数据
x = np.random.rand(50)
y = np.random.rand(50)
colors = np.random.rand(50)  # 颜色数组
sizes = 1000 * np.random.rand(50)  # 点的大小数组

# 创建散点图,自定义颜色和大小
plt.scatter(x, y, c=colors, s=sizes, alpha=0.5, cmap='viridis')

# 添加颜色条
plt.colorbar()

# 设定标题和坐标轴标签
plt.title('Customized Scatter Plot')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')

# 显示图形
plt.show()

在这个示例中,c 参数控制点的颜色,s 参数控制点的大小,而 alpha 参数控制点的透明度。cmap 参数定义了一个颜色映射,plt.colorbar() 添加了一个颜色条以解释颜色的含义。

plt.xlabel 和 plt.ylabel

这两个函数分别用来设置 x 轴和 y 轴的标签。

plt.xlabel(label, fontdict=None, labelpad=None, loc=None, **kwargs)
plt.ylabel(label, fontdict=None, labelpad=None, loc=None, **kwargs)
plt.xlabel('X Axis Label')  # 设置 x 轴的标签
plt.ylabel('Y Axis Label')  # 设置 y 轴的标签

label:字符串,即坐标轴的标签文本。
fontdict:字典,可用于自定义标签的字体样式。这可以包括字体大小 (‘fontsize’)、字体颜色 (‘color’)、字体粗细 (‘fontweight’) 等。
labelpad:数值,指定标签与坐标轴之间的距离(以点为单位)。
loc:字符串,指定标签的位置。对于 xlabel,可选值包括 ‘left’、‘center’、‘right’。对于 ylabel,可选值包括 ‘bottom’、‘center’、‘top’。这个参数在较新版本的 Matplotlib 中引入,可能在一些旧版本中不可用。
**kwargs:其他关键字参数,可以用来设置文本属性,如 rotation(文本旋转角度)。

import matplotlib.pyplot as plt

# 绘制一个简单的图形
plt.plot([1, 2, 3], [4, 5, 6])

# 设置 x 轴和 y 轴标签,自定义样式
plt.xlabel('X Axis Label', fontdict={'fontsize': 14, 'fontweight': 'bold', 'color': 'blue'}, labelpad=15, loc='right')
plt.ylabel('Y Axis Label', fontdict={'fontsize': 14, 'fontweight': 'bold', 'color': 'green'}, labelpad=20, loc='top')

plt.show()

plt.xlim 和 plt.ylim

这两个函数用来设置图表的 x 轴和 y 轴的显示范围。

plt.xlim(left, right)
plt.ylim(bottom, top)

left:x 轴的最小值。
right:x 轴的最大值。
bottom:y 轴的最小值。
top:y 轴的最大值。

这些参数可以是数字,表示具体的数值范围。如果你想要自动确定某一端的范围(例如,只设置最小值),你可以将相应的参数留空或设置为 None

plt.xlim(0, 10)  # 设置 x 轴的范围从 0 到 10
plt.ylim(-1, 1)  # 设置 y 轴的范围从 -1 到 1

在设置轴限之前,你可能想知道当前的轴限是什么。plt.xlim() 和 plt.ylim() 在没有任何参数的情况下可以返回当前的轴限:

current_xlim = plt.xlim()
current_ylim = plt.ylim()

如果你只想设置轴的一端(比如,只设置最小值),可以这样做:

plt.xlim(None, 6)  # 只设置 x 轴的最大值
plt.ylim(0, None)  # 只设置 y 轴的最小值

plt.title

此函数用来设置整个图表的标题。

plt.title('Chart Title')  # 设置图表的标题

常用参数

label (或第一个位置参数)

说明:标题的文本内容。
类型:字符串。

fontdict

说明:一个字典,用于控制标题的字体样式。可以包括诸如 'fontsize'、'fontweight'、'color' 等关键字来自定义标题文本的外观。
类型:字典。

loc

说明:标题的位置。默认值是 'center',表示标题居中。其他可选值包括 'left' 和 'right'。
类型:字符串。

pad

说明:标题与图表顶部边缘之间的间距,单位是点(pt)。
类型:数值。

plt.legend

用于添加图例,区分图中的不同数据集。

plt.legend(handles=None, labels=None, loc='best', title=None, frameon=True, shadow=False, fancybox=False, framealpha=1.0, bbox_to_anchor=None, borderaxespad=0.5, **kwargs)

常用参数说明

handles:一组用于添加图例项的艺术家(如线条、条形图等),通常不需要手动设置,因为当你在绘图命令(如 plt.plot())中使用 label 参数时,Matplotlib 会自动处理。
labels:一组字符串,用于指定每个图例项的标签。如果 handles 被指定,则 labels 也需要明确设置以匹配。
loc:指定图例的位置。可以是字符串(如 ‘upper right’、‘lower left’、‘center’ 等)或一个包含两个浮点数的元组,表示图例左下角的相对坐标(在轴坐标系中)。‘best’ 位置(默认)会自动选择最不碍事的位置。
title:字符串,用于给图例添加标题。
frameon:布尔值,指定是否显示图例边框。
shadow:布尔值,当设置为 True 时,图例会有阴影效果。
fancybox:布尔值,当设置为 True 时,会使用圆角边框绘制图例框。
framealpha:数值,控制图例框的透明度。
bbox_to_anchor:元组或 BboxBase 实例,用于确定图例框的位置。这在将图例放在轴的外部特别有用。
borderaxespad:数值,控制图例框与轴的边界之间的填充。

import matplotlib.pyplot as plt

# 绘制两组数据
plt.plot([1, 2, 3], [4, 5, 6], label='Line A')
plt.plot([1, 2, 3], [6, 5, 4], label='Line B')

# 添加图例
plt.legend(title='Legend Title', loc='upper left', frameon=False, shadow=True, fancybox=True, framealpha=0.5)

plt.show()

plt.grid

用于添加或调整图表中的网格线,这有助于估计数据点位置。

plt.grid(visible=None, which='major', axis='both', **kwargs)

常用参数说明

visible:布尔值,用于控制网格线的显示与否。如果设置为 False,将隐藏网格线。
which:指定是添加主要的网格线 (‘major’)、次要的网格线 (‘minor’),还是两者都添加 (‘both’)。默认值是 ‘major’。
axis:指定添加网格线的轴。可以是 ‘x’、‘y’ 或 ‘both’。默认值是 ‘both’,即在 x 轴和 y 轴上都添加网格线。
**kwargs:提供额外的关键字参数来自定义网格线的样式,例如颜色 (color)、线型 (linestyle)、线宽 (linewidth) 等。

import matplotlib.pyplot as plt

# 绘制一个简单的图形
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])

# 添加并自定义网格线
plt.grid(True, which='both', axis='both', color='gray', linestyle='--', linewidth=0.5)

plt.show()

plt.figure

创建一个新的图形或激活一个现有图形。

常用参数:

figsize:元组,指定图形的宽度和高度,单位为英寸。
dpi:整数,指定图形的分辨率,即每英寸点数。较高的 DPI 提供更高的图形质量。
facecolor:图形的背景颜色。
edgecolor:图形边缘的颜色。
num:图形的编号或名称。如果指定了编号,plt.figure 将激活现有图形;否则,将创建一个新图形。

import matplotlib.pyplot as plt

plt.figure(figsize=(8, 6), dpi=80, facecolor='w', edgecolor='k')
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.show()

plt.text

用于在图形中的任意位置添加文本。
常用参数:

x, y:浮点数,表示文本在图形中的位置(基于数据的坐标系)。
s:字符串,你想在图形中显示的文本内容。
fontdict:字典,可用于控制文本的外观,如字体大小 (‘fontsize’)、字体颜色 (‘color’) 和字体风格 (‘fontstyle’) 等。
horizontalalignment, verticalalignment:字符串,控制文本的对齐方式。水平对齐方式可为 ‘left’, ‘center’, ‘right’;垂直对齐方式可为 ‘top’, ‘center’, ‘bottom’,
‘baseline’。
rotation:数值或字符串,控制文本的旋转角度。

plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.text(2, 8, 'Example Text', fontsize=12, color='red', 
         horizontalalignment='center', verticalalignment='bottom', 
         rotation=45)
plt.show()
  • 23
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI1.0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值