Python没有正确地绘制线

2024-04-27 03:54:16 发布

您现在位置:Python中文网/ 问答频道 /正文

在下面的代码中,“plot”没有正确地绘制线:线没有精确地经过我的所有点。为什么?我做错什么了?我使用microsoftvisualstudio和python3.7(64位)。我用adobeillustrator 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?


Tags: in图像forplotvarnppirange