簡體   English   中英

Python / Matplotlib極坐標繪制多邊形的反向填充

[英]Python/Matplotlib Inverse Fill of Polar Plot Polygon

目前我有以下腳本生成方位角/半徑數據的極坐標圖。 “R1”很簡單,是從ArcGIS中的表格派生的[方位角,傾角]值列表。

import matplotlib.pyplot as plt
import numpy as np 

for(a,r) in R1:
    angles.append(a)
    radius.append(90-r)
theta = np.radians(angles)
r = radius

ax = plt.subplot(111,polar=True)
ax.plot(theta, r, color='black', ls='-', linewidth=1)
ax.fill(theta,r,'0.75') ## should I use ax.fill_betweenx() ?
ax.set_theta_zero_location('N')
ax.set_theta_direction(-1)
ax.set_rmax(90)
ax.set_rmin(0)
ax.set_yticks(range(0,90,10))
yLabel=['90','','','60','','','30','','','']
ax.set_yticklabels(yLabel)
ax.grid(True)
plt.show()

目前,這會產生以下情節:

在此輸入圖像描述

如何“反轉”填充,使填充灰色的內容為白色,白色內容為灰色?

我嘗試過ax.fill_betweenx(theta,90,r,color ='0.75')並且沒有用。 我一直在與此爭斗一段時間無濟於事。

非常感謝任何幫助或建議!

如果有任何方法可以讓我更清楚,請在評論中告訴我。

根據您以后要執行的操作,最快捷的方法是將背景設置為灰色並填充白色:

import matplotlib.pyplot as plt
import numpy as np
ax = plt.subplot(111, polar=True)

theta = np.linspace(0, 2*np.pi, 100)
r = 2 + np.sin(theta * 2)
ax.patch.set_facecolor('0.5')
ax.plot(theta, r, color='black', ls='-', linewidth=1)
ax.fill(theta,r,'w')
plt.show()
plt.draw() # just to be safe!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM