Python无法正确绘制线条

时间:2019-09-15 16:59:30

标签: python matplotlib plot behavior

在下面的代码中,“绘图”未正确绘制线:这些线并不能精确地经过我的所有点。为什么?我究竟做错了什么?我将Microsoft Visual Studio与Python 3.7(64位)一起使用。我使用Adobe Illustrator 16.0.0(64位)打开图像,将其扩展20倍(因为我的项目需要大图像),然后得到类似附件的图像。

import numpy as np
import matplotlib.pyplot as mplpp

RA = [2.007128649, 4.71238898, 0.916297857, 2.007128649]
Dec = [-1.439896633, -1.439896633, -1.483529864, -1.483529864]

x = []
y = []

num = 100

for i in range(0, 4, 2):
    if (RA[i] == RA[i + 1]):
        alfa = RA[i]
        for t in range(0, num + 1, 1):
            delta = Dec[i] + (Dec[i + 1] - Dec[i]) * (t / num)
            x.append((np.pi/2 + delta) * np.cos(alfa))
            y.append((np.pi/2 + delta) * np.sin(alfa))    
    elif (Dec[i] == Dec[i + 1]):
        delta = Dec[i]
        if (RA[i + 1] - RA[i] <= -np.pi):
            var_alfa = RA[i + 1] - RA[i] + 2*np.pi
        elif (RA[i + 1] - RA[i] >= np.pi):
            var_alfa = RA[i + 1] - RA[i] - 2*np.pi
        else:
            var_alfa = RA[i + 1] - RA[i]
        for t in range(0, num + 1, 1):
            alfa = RA[i] + var_alfa * (t / num)
            x.append((np.pi/2.0 + delta) * np.cos(alfa))
            y.append((np.pi/2.0 + delta) * np.sin(alfa))

mplpp.scatter(x, y, color = 'r', s = 0.005)
mplpp.plot(x, y, color = 'g', linewidth = 0.1)
mplpp.fill(x, y, color = 'b', linewidth = 0.1, fill = False)

mplpp.axis('off')
mplpp.axis('equal')

mplpp.savefig('image.ps', transparent = True, dpi = 100)

print("Done...")

"fill" seems to be more accurate than "plot", but why?

0 个答案:

没有答案