低分辨率曲线图

问题描述 投票:0回答:1

我的问题要求是重画一张低分辨率曲线图。如下图:

有没有办法使用 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

python matplotlib plot graphics drawing
1个回答
3
投票

您可以通过在调用

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)

© www.soinside.com 2019 - 2024. All rights reserved.