图像的组成
工具库
Matplotlib:绘制静态图
Plotly: 可以绘制交互式图片
图像的绘制(Matplotlib)
创建图形,轴对象
创造等差数列
# 包含后端点
arr = np.linspace(0, 1, num=11)
# 不包含后端点
arr_no_endpoint = np.linspace(0, 1, num=10, endpoint=False)
用figure先生成一个图形再加子图
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
在添加子图的参数中,前两个1是将画布分为1行1列(即不变)
后一个1是在第一个位置生成图像
同时创建图形和对称轴
fig, ax = plt.subplots(figsize=(8, 6))
绘制曲线
ax.plot(x_array, sin_y, label='sin', color='b', linewidth=2)
艺术家
到上一步为止,已经可以打印出图片:
但一般来说还要加上更多的图片修饰,这些修饰就是艺术家内容。
综合代码
# 导入包
import numpy as np
import matplotlib.pyplot as plt# 生成横轴数据
x_array = np.linspace(0, 2*np.pi, 100)
# 正弦函数数据
sin_y = np.sin(x_array)
# 余弦函数数据
cos_y = np.cos(x_array)
# 设置图片大小
fig, ax = plt.subplots(figsize=(8, 6))# 绘制正弦和余弦曲线
ax.plot(x_array, sin_y, label='sin', color='b', linewidth=2)
ax.plot(x_array, cos_y, label='cos', color='r', linewidth=2)# 设置标题、横轴和纵轴标签
ax.set_title('Sine and cosine functions')
ax.set_xlabel('x')
ax.set_ylabel('f(x)')# 添加图例
ax.legend()# 设置横轴和纵轴范围
ax.set_xlim(0, 2*np.pi)
ax.set_ylim(-1.5, 1.5)# 设置横轴标签和刻度标签
x_ticks = np.arange(0, 2*np.pi+np.pi/2, np.pi/2)
x_ticklabels = [r'$0$', r'$\frac{\pi}{2}$', r'$\pi$', r'$\frac{3\pi}{2}$', r'$2\pi$']
ax.set_xticks(x_ticks)
ax.set_xticklabels(x_ticklabels)# 横纵轴采用相同的scale
ax.set_aspect('equal')
plt.grid()
# 将图片存成SVG格式
plt.savefig('正弦_余弦函数曲线.svg', format='svg')# 显示图形
plt.show()
效果:
若要将正弦余弦分开绘制,则要生成两张坐标轴的子图。
图像的绘制(Plotly)
# 导入包
import plotly.express as px
import numpy as np
import pandas as pd
# 生成横轴数据
x = np.linspace(0, 2 * np.pi, 100)# 生成正弦和余弦曲线的数据
y_sin = np.sin(x)
y_cos = np.cos(x)# 生成Pandas数据帧
df = pd.DataFrame({'x': x, 'Sine': y_sin, 'Cosine': y_cos})
# 创建图表
fig = px.line(df, x='x', y=['Sine', 'Cosine'], labels={'value': 'f(x)', 'X': 'x'})
# 显示图表
fig.show()