【问题标题】:What are these distortions when plotting fill_between in polar coordinates? And how do I get rid of them?在极坐标中绘制 fill_between 时,这些失真是什么?我该如何摆脱它们?
【发布时间】:2019-08-19 12:00:38
【问题描述】:

我想绘制一个不同宽度的螺旋线。然而,当我绘制该图时,在线上方和下方出现了一些特殊的点(下图中红色箭头指向的位置)。它们似乎发生在点之间,线应该是直的。它们也不会以任何明显的模式出现。

我已经运行了以下代码,但我不知道是什么导致了这些奇怪的失真。有什么想法吗?

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()

【问题讨论】:

  • 看起来像是 jpg 压缩神器。尝试使用 png 看看它是否仍然存在。
  • @James 我尝试另存为 png,但问题仍然存在。不过谢谢。

标签: python matplotlib graph polar-coordinates spiral


【解决方案1】:

color=FILL_COLOUR 更改为facecolor=FILL_COLOUR 似乎已经解决了这个问题。显然facecolor 没有设置边缘的颜色。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-12
    • 2021-08-16
    • 1970-01-01
    • 2019-06-07
    • 2018-10-31
    相关资源
    最近更新 更多