文章目录

1. 数据可视化2. 基本绘图 API2.1 plot()2.2 hlines() 绘制水平线2.3 vlines() 绘制垂直线2.4 linspace() sin() cos()

3. 设置线型线宽4. 设置坐标刻度4.1 坐标轴刻度标签文本以 latex 格式显示

5. 设置坐标轴6. 设置图例7. 设置特殊点8. 设置备注附可设置线颜色的单词latex图形特殊点的点型特殊点备注的箭头样式

1. 数据可视化

数据可视化指的是使用图形的方式展现数据分布规律。

2. 基本绘图 API

2.1 plot()

import numpy as np

import matplotlib.pyplot as plt

x = np.array([1, 2, 3, 4, 5])

y = np.array([12, 22, 43, 34, 25])

# 绘图函数

# 需要传入两个数组类型的参数

# 第一个参数为 x 轴上的坐标,第二个参数为 y 轴上的坐标

# 两个数组对应位置的 x 与 y 组成一个点的坐标

# 两个数组在形式上需要相同

plt.plot(x, y)

# 显示绘制的图形,会阻塞程序的运行

plt.show()

传入的数组参数只有一个的情况:

import numpy as np

import matplotlib.pyplot as plt

x = np.array([1, 2, 3, 4, 5])

y = np.array([12, 22, 43, 34, 25])

# 绘图函数

# 如果传入的数组参数为一个

# 则传入的数组参数会被默认是 y 轴的坐标,在 x 轴上的取值会默认进行取值

plt.plot(x)

plt.plot(y)

# 显示绘制的图形,会阻塞程序的运行

plt.show()

2.2 hlines() 绘制水平线

import numpy as np

import matplotlib.pyplot as plt

# 第一个参数为水平线的 y 值

# 第二个参数为水平线的开始位置

# 第三个参数为水平线的结束位置

plt.hlines(20, 2, 4)

plt.show()

2.3 vlines() 绘制垂直线

import numpy as np

import matplotlib.pyplot as plt

# 第一个参数为垂直线的 x 值

# 第二个参数为垂直线的开始位置

# 第三个参数为垂直线的结束位置

plt.vlines(20, 2, 4)

plt.show()

2.4 linspace() sin() cos()

import numpy as np

import matplotlib.pyplot as plt

# linspace() 线性拆分

# 从 0 到 π 之间取 1000 个点

# np.pi π

x = np.linspace(0, 2*np.pi, 1000)

# 求 x 中每个点对应 sin 值

sinx = np.sin(x)

plt.plot(x, sinx)

plt.show()

import numpy as np

import matplotlib.pyplot as plt

# linspace() 线性拆分

# 从 0 到 π 之间取 1000 个点

# np.pi π

x = np.linspace(0, 2*np.pi, 1000)

# 求 x 中每个点对应 cos 值

cosx = np.cos(x)

plt.plot(x, cosx)

plt.show()

3. 设置线型线宽

在使用 plot() 绘图时,还可以传入如下参数,来设置线型线宽:

参数说明linestyle设置线型:‘-’(实线) ‘- -’(虚线) ‘-.’ ‘:’linewidth线宽(数字)color颜色 ( #rrggbb 或 颜色单词 或 (r, g, b, a) )alpha设置透明度(0-1)

import numpy as np

import matplotlib.pyplot as plt

x = np.linspace(0, 2*np.pi, 1000)

sinx = np.sin(x)

cosx = np.cos(x)

plt.plot(x, sinx, linestyle=':', linewidth=2, alpha=0.7, color='black')

plt.plot(x, cosx, linestyle='-.', linewidth=3, alpha=1, color='#12ff12')

plt.show()

import numpy as np

import matplotlib.pyplot as plt

x = np.linspace(0, 2*np.pi, 1000)

sinx = np.sin(x)

cosx = np.cos(x)

# color=(red, green, blue, alph)

# 四个取值为 0-1

plt.plot(x, sinx, color=(0, 0.5, 0.7, 0.8))

plt.show()

4. 设置坐标刻度

设置 x 轴的坐标刻度:

xticks(x_val_list, x_text_list)

x_val_list: x 轴刻度值序列

x_text_list: x 轴刻度标签文本序列[可选]

设置 y 轴的坐标刻度:

yticks(y_val_list, y_text_list)

y_val_list: y 轴刻度值序列

y_text_list: y 轴刻度标签文本序列[可选]

import numpy as np

import matplotlib.pyplot as plt

x = np.linspace(0, 2*np.pi, 1000)

sinx = np.sin(x)

cosx = np.cos(x)

# 修改 x 轴的刻度

names = ['0', 'π/2', 'π', '3π/2', '2π']

plt.xticks([0, np.pi/2, np.pi, 3*np.pi/2, 2*np.pi], names)

plt.plot(x, sinx, linestyle=':', linewidth=2, alpha=0.7, color='black')

plt.plot(x, cosx, linestyle='-.', linewidth=3, alpha=1, color='#12ff12')

plt.show()

4.1 坐标轴刻度标签文本以 latex 格式显示

import numpy as np

import matplotlib.pyplot as plt

x = np.linspace(0, 2*np.pi, 1000)

sinx = np.sin(x)

cosx = np.cos(x)

# 修改 x 轴的刻度

# latex 格式的字符串写在 $ $ 中间

# r'' 原始字符串

# \frac{分子}{分母} 分数形式

names = ['0', r'$\frac{\pi}{2}$', 'π', r'$\frac{3\pi}{2}$', '2π']

plt.xticks([0, np.pi/2, np.pi, 3*np.pi/2, 2*np.pi], names)

plt.plot(x, sinx, linestyle=':', linewidth=2, alpha=0.7, color='black')

plt.plot(x, cosx, linestyle='-.', linewidth=3, alpha=1, color='#12ff12')

plt.show()

5. 设置坐标轴

import numpy as np

import matplotlib.pyplot as plt

x = np.linspace(0, 2*np.pi, 1000)

sinx = np.sin(x)

cosx = np.cos(x)

# 修改 x 轴的刻度

names = ['0', r'$\frac{\pi}{2}$', 'π', r'$\frac{3\pi}{2}$', '2π']

plt.xticks([0, np.pi/2, np.pi, 3*np.pi/2, 2*np.pi], names)

# 设置坐标轴

# 绘制出来的图形四个边都是坐标轴

# 先获取当前图形的坐标轴

ax = plt.gca()

# 获取其中某个坐标轴

# ax.spines['坐标轴名']

# set_color() 设置坐标轴的颜色 颜色的书写可以采用上面设置线颜色的方式

# set_color('none') 不显示坐标轴

# left - 左轴,right - 右轴,bottom - 下轴,top - 上轴

# 获取上轴和右轴,取消上轴和右轴的显示

ax.spines['top'].set_color('none')

ax.spines['right'].set_color('none')

# 设置坐标轴的位置

# 需要传入 2 个元素组成的元组为参数

# 第一个元素为移动坐标轴的参照类型,一般为 ’data‘ 以数据的值作为移动参照值

# 第二个元素为参照值

# set_position((参照类型, 参照值))

ax.spines['left'].set_position(('data', 0))

ax.spines['bottom'].set_position(('data', 0))

# 绘制图形

plt.plot(x, sinx, linestyle=':', linewidth=2, alpha=0.7, color='black')

plt.plot(x, cosx, linestyle='-.', linewidth=3, alpha=1, color='#12ff12')

plt.show()

6. 设置图例

# 在绘制图形的时候可以设置图例

plot( x, y, label='' )

# label: 关键字参数,值为字符串,支持 latex 排版语法的字符串

# 设置图例的位置(不设置,会默认寻找一个合适的位置放图例)

legend( loc='' )

# loc: 关键字参数

loc 的取值:

# 绘制图形

plt.plot(x, sinx, linestyle=':', linewidth=2, alpha=0.7, color='black', label='y = sin(x)')

plt.plot(x, cosx, linestyle='-.', linewidth=3, alpha=1, color='#12ff12', label='y = cos(x)')

# 要调用该方法,图例才会显示

plt.legend()

plt.show()

plt.legend(loc='upper right')

# 取对应的数字编码,效果一样

7. 设置特殊点

plt.scatter(

x, # 所有需要标注点的水平坐标组成的序列

y, # 所有需要标注点的垂直坐标组成的序列

marker='', # 点型

s='', # 点的大小, 取值:数字

edgecolors='', # 边缘色

facecolor='', # 填充色

zorder=3 # 绘制图层编号(点和线之间的上下层关系) 数字大的在上

)

# 绘制特殊点

xs, ys = [np.pi, np.pi], [0, -1]

plt.scatter(

xs,

ys,

marker='D',

edgecolors='red',

facecolor='blue',

s=80,

zorder=2,

label='Point' # 设置特殊点的图例

)

# 图例

plt.legend(loc=1)

plt.show()

8. 设置备注

# 在图表中为某个点添加备注。

# 包含备注文本,备注箭头等图像的设置。

plt.annotate(

'', # 备注中显示的文本内容

xycoords='data', # 备注目标点所使用的坐标系

# data 表示数据坐标系

xy=(x, y), # 备注目标点的坐标

textcoords='offset points',# 备注文本所使用的坐标系

# offset points 参照点的偏移坐标系,以备注目标点为原点建立参照坐标系

xytext=(x, y), # 备注文本的坐标

fontsize=14, # 备注文本的字体大小

arrowprops=dict() # 箭头样式,值为字典

)

# arrowprops 字典参数的常用key

arrowprops=dict(

arrowstyle='', #定义箭头样式

connectionstyle='' # 定义连接线的样式

)

其他更多参数可以参考: 【Matplotlib 可视化之箭头与标注的高级应用】

【官方文档】

# 设置备注文本

plt.annotate(

'(π, -1)',

xycoords='data',

xy=(np.pi, -1),

textcoords='offset points',

xytext=(20, -30),

fontsize=14,

arrowprops=dict(

arrowstyle='->',

connectionstyle='angle3'

)

)

# 图例

plt.legend(loc=1)

plt.show()

可设置线颜色的单词

latex

【在线 LaTeX 公式编辑器】

图形特殊点的点型

特殊点备注的箭头样式

图片来源: 【Matplotlib 可视化之箭头与标注的高级应用】

推荐阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: