在极坐标中绘制 fill_between 时,这些扭曲是什么?我该如何摆脱它们?
What are these distortions when plotting fill_between in polar coordinates? And how do I get rid of them?
我想绘制一个不同宽度的螺旋线。然而,当我绘制图形时,在线上方和下方出现了一些奇特的点(下图中红色箭头指向的位置)。它们似乎发生在点之间,线应该是直的。它们也不会以任何明显的模式出现。
我有 运行 以下代码,但我无法弄清楚是什么导致了这些奇怪的失真。有什么想法吗?
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.use('Agg')
plt.ioff()
MY_DPI = 300
BKGD_COLOUR = 'w'
FILL_COLOUR= 'k'
a = 0
b = 0.5
maxRadius = 100
maxTheta = (maxRadius - a) / b
t = np.arange(0, maxTheta, 0.1)
r = a + b *t
fig = plt.figure(figsize=(10,10), dpi=MY_DPI)
ax = fig.add_axes([0,0,1,1], polar=True)
ax.set_rlim(0, maxRadius)
ax.axis('off')
r_bot = np.array(r) - np.random.uniform(0.1, 0.5, len(r))
r_top = np.array(r) + np.random.uniform(0.1, 0.5, len(r))
ax.fill_between(t, r_bot, r_top, color=FILL_COLOUR, lw=0)
plt.savefig('spiraliser.jpg', facecolor=BKGD_COLOUR, bbox_inches='tight', dpi=MY_DPI)
plt.close()
将 color=FILL_COLOUR
更改为 facecolor=FILL_COLOUR
似乎已经解决了这个问题。显然facecolor
没有设置边缘的颜色。
我想绘制一个不同宽度的螺旋线。然而,当我绘制图形时,在线上方和下方出现了一些奇特的点(下图中红色箭头指向的位置)。它们似乎发生在点之间,线应该是直的。它们也不会以任何明显的模式出现。
我有 运行 以下代码,但我无法弄清楚是什么导致了这些奇怪的失真。有什么想法吗?
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.use('Agg')
plt.ioff()
MY_DPI = 300
BKGD_COLOUR = 'w'
FILL_COLOUR= 'k'
a = 0
b = 0.5
maxRadius = 100
maxTheta = (maxRadius - a) / b
t = np.arange(0, maxTheta, 0.1)
r = a + b *t
fig = plt.figure(figsize=(10,10), dpi=MY_DPI)
ax = fig.add_axes([0,0,1,1], polar=True)
ax.set_rlim(0, maxRadius)
ax.axis('off')
r_bot = np.array(r) - np.random.uniform(0.1, 0.5, len(r))
r_top = np.array(r) + np.random.uniform(0.1, 0.5, len(r))
ax.fill_between(t, r_bot, r_top, color=FILL_COLOUR, lw=0)
plt.savefig('spiraliser.jpg', facecolor=BKGD_COLOUR, bbox_inches='tight', dpi=MY_DPI)
plt.close()
将 color=FILL_COLOUR
更改为 facecolor=FILL_COLOUR
似乎已经解决了这个问题。显然facecolor
没有设置边缘的颜色。