3
サイトとPythonにはまったく新しいので、ヘルプとヒントは高く評価されます。関数に応じてパッチコレクションをプロットする
私は、(x、y)のいくつかのデータを得て、中心の周りにいくつかのほぼ円形の曲線を描いています。しかし、例のために、私はちょうどいくつかの(x、y)形成サークルを作成しました。
ここでは、これらのポリゴンの間のスペースを色で塗りつぶしたいと思います。すべての「リング」に独自のシェードがあるように関数によって得られた値(z)を考えてみましょう。
これは、私が今考え出したものです。私を与える
import matplotlib.pyplot as plt
import numpy as np
from math import sin, cos
from matplotlib.patches import Polygon
from matplotlib.collections import PatchCollection
r = np.array([0.1, 0.2, 0.3, 0.4, 0.5 ,0.6, 0.7, 0.8, 0.9, 1.0])
fig, ax = plt.subplots(1)
ax.set_xlim([-1.1, 1.1])
ax.set_ylim([-1.1, 1.1])
x=[]
y=[]
patches = []
colors=np.array([0.9,0.8, 0.1, 0.1, 0.1, 0.4, 0.2,0.8,0.1, 0.9])
for radius in r:
for phi in np.linspace(0, 360, 200, endpoint=True):
x.append(radius*cos(np.deg2rad(phi)))
y.append(radius*sin(np.deg2rad(phi)))
points = np.vstack([x,y]).T
polygon = Polygon(points,False)
patches.append(polygon)
p = PatchCollection(patches, cmap="Blues")
p.set_array(colors)
ax.add_collection(p)
plt.show()
- 右側に、この水平線があり、なぜかしら、これは私が、私は自分のコードが何をするのか理解しないと信じています。
- リングセグメントのすべてが異なる色合いを持つのではなく、同じ色を持つので、これはトリックを行っていません。私は私がドキュメント が得られないようが何set_array()ないアイデアを持っていないにもかかわらずexample でそれを発見したよう p.set_array(色) は、トリックを行うだろうと思った
離れてたくさん。
全く異なるアプローチがある場合は、とにかく教えてください。
はい、私はパッチを必要と私は最終的に重複が問題であったことを自分自身を考え出しました。しかし、r = r [:: - 1]で自分のコード内の半径配列を単純に逆転させても、それは技術的には同じでなければならないのに、私にとってはうまくいきません。 PatchCollectionでの描画の順序を決定する方法(私はすでに単一パッチのzorderを見つけました) – Marsl