表格绘制基本操作

环境配置

导包和配置

import matplotlib.pyplot as plt #导包

%matplotlib notebook  # 魔法配置,可以让表格显示在jupyter里面

如果提示如下错误:

ModuleNotFoundError: No module named 'matplotlib'

安装此模块即可:(安装前确认自己的环境是否和开发环境一致)

pip install matplotlib

中文字体支持 SimHei.ttf

1)下载上述字体文件(或从自己电脑搜索SimHei.ttf)

2)到SimHei.ttf所在文件夹,鼠标右键Open in Terminal, 执行以下命令

# 拷贝当前目录下的simhei.ttf文件到指定目录
sudo cp SimHei.ttf /usr/share/fonts/
# 删除matplotlib配置缓存 (这里的路径中的/home/itcast/注意用自己的用户名)
sudo rm -r /home/itcast/.cache/matplotlib/
# 添加配置内容(这里的路径中的/home/itcast/注意用自己的用户名)
echo -e "font.family : sans-serif \nfont.sans-serif : SimHei \naxes.unicode_minus : False" >> /home/itcast/anaconda3/envs/notebook/lib/python3.7/site-packages/matplotlib/mpl-data/matplotlibrc

3)在代码声明plt后添加以下配置

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

绘图操作

  • 绘制折线图
fig= plt.figure()
plt.plot([2, 3, 1, 4]) # 默认x是0开始, (0,2), (1,3), (2,1), (3,4)
plt.xlabel('x')
plt.ylabel('y')
plt.show()

输出如下:

image-20200920110343408

  • 指定绘制图形的大小

宽6英寸,高6英寸,每英寸占60像素

fig= plt.figure(figsize=(6,6), dpi=60)
plt.plot([2, 3, 1, 4]) # 默认x是0开始, (0,2), (1,3), (2,1), (3,4)
plt.scatter(3, 2)
plt.xlabel('x')
plt.ylabel('y')
plt.show()

输出如下:

image-20200920110738331

  • 包含路径点的折线图
x_data = np.array([1, 2, 3, 5, 6])
y_data = np.array([2, 3, 4, 3, 2])

fig= plt.figure(figsize=(6,6), dpi=60)
plt.scatter(x_data, y_data)
plt.plot(x_data, y_data)
plt.xlabel('x')
plt.ylabel('y')
plt.show()

输出如下:

image-20200920110831675

  • 指定线宽和颜色

img

  • 指定x和y轴的范围,和标签内容
# x_data = np.array([0, np.pi / 4, np.pi / 2])
x_data = np.linspace(0, np.pi, 100)
y_data = np.sin(x_data)

fig= plt.figure(figsize=(6,6), dpi=60)
# plt.scatter(x_data, y_data)
plt.plot(x_data, y_data, color="indigo", linewidth=2, linestyle="-.")
plt.xlabel('x')
plt.ylabel('y')

# 指定绘图坐标范围
plt.xlim(0.0, 4.0)
plt.ylim(-1.0, 1.0)

plt.show()

输出内容:

image-20200920110945627

  • 设置关键点标注
fig = plt.figure(figsize=(6, 6), dpi=60) #
plt.plot([2, 3, 1, 4]) 
plt.xlabel('x')
plt.ylabel('y')
plt.annotate('转折点',xy=(1, 3),  # 箭头指向的位置
             xytext=(+10, +30),   # 文字偏移的位置
             textcoords='offset points', 
             fontsize=12, arrowprops=dict(arrowstyle="->"))
plt.show()

输出结果:

image-20200920111031125

绘制子表格

  • 准备数据
# 构建余弦函数和正弦函数
X = np.linspace(0, 2 * np.pi, 15)
C = np.cos(X)
S = np.sin(X)
  • 同一个表格绘制多个数据
# 显示余弦函数和正弦函数
fig = plt.figure(figsize=(8, 4), dpi=80)
plt.plot(X, np.zeros(len(X)))
# plt.subplot(2, 1, 1)
plt.plot(X, C)
# plt.subplot(2, 1, 2)
plt.plot(X, S)

plt.ylim(-1.0, 1.0)
plt.show()

输出结果:

image-20200920111130534

  • 同时绘制两个表格
# 分成多个表格显示
# 显示余弦函数和正弦函数
fig = plt.figure(figsize=(5, 4), dpi=80)
plt.ylim(-1.0, 1.0)

plt.subplot(2, 1, 1)
plt.plot(X, C)
plt.subplot(2, 1, 2)
plt.plot(X, S)

plt.show()

输出结果:

image-20200920111215468