我的问题要求是重画一张低分辨率曲线图。如下图:
有没有办法使用 matplotlib 库或任何图像处理解决方案来做到这一点?目前 matplotlib 正在生成具有非常高平滑度的线条,如下所示:
这是我使用的绘图功能:
with open('points.csv') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=',')
for row in csv_reader:
x = float(row[0])
y = float(row[1])
arr.append([x, y])
data = list(arr)
plt.plot(*zip(*data), color='black', linewidth=0.5, alpha=1.0)
plt.savefig("report.png")
数据示例:
617,21.550045745097
617.25,21.4286797104602
617.5,21.3023081618079
617.75,21.1830623411815
618,21.0748879703542
Note: Low resolution data curve only
antialiased
或 False
时将
plt.plot
kwarg 更改为
ax.plot
来接近这种效果,它控制线条是否平滑。考虑以下几点:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-5, 5)
y = x**3
fig, ax = plt.subplots()
ax.plot(x, y, 'b-', lw=1, antialiased=True, label='antialiased=True')
ax.plot(x, y+10, 'k-', lw=1, antialiased=False, label='antialiased=False')
ax.legend()
plt.savefig('antialiased.png', dpi=100)