- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
对于该站点是全新的,对于 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()
给我:rings
我以为 p.set_array(颜色)会像我在 example 中找到的那样发挥作用尽管我不知道 set_array() 在文档中做了什么不会放弃太多。
如果有完全不同的方法,请随时告诉我。
最佳答案
您需要将圆从最大到最小相加,这样它们就不会相互重叠。
我用了plot a circle with pyplot和 http://matplotlib.org/users/colormaps.html
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.cm as cm
r = np.arange(1, 0, -0.1)
fig, ax = plt.subplots(1)
ax.set_xlim([-1.1, 1.1])
ax.set_ylim([-1.1, 1.1])
color_vec = np.array([0.9, 0.8, 0.1, 0.1, 0.1, 0.4, 0.2, 0.8, 0.1, 0.9])
colors = cm.get_cmap("Blues")(color_vec)
for i, radius in enumerate(r):
circle = plt.Circle((0, 0), radius, color=colors[i])
ax.add_artist(circle)
plt.show()
如果你需要补丁:
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.patches import Polygon
from matplotlib.collections import PatchCollection
r = np.arange(1, 0, -0.1)
fig, ax = plt.subplots(1)
ax.set_xlim([-1.1, 1.1])
ax.set_ylim([-1.1, 1.1])
patches = []
colors = np.array([0.9, 0.8, 0.1, 0.1, 0.1, 0.4, 0.2, 0.8, 0.1, 0.9])
phi = np.linspace(0, 2*np.pi, 200)
for radius in r:
x = radius * np.cos(phi)
y = radius * np.sin(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()
关于python - 根据函数绘制 PatchCollection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39195553/
我有一些 patches我应用了不同的Affine2D matplotlib 中的转换. 是否有可能将它们添加为 collections.PatchCollection ?不知何故,我只能在调用 ax
对于该站点是全新的,对于 Python 也是相当新的,因此感谢您的帮助和提示。 我有一些 (x,y) 的数据,它们围绕一个中心形成几条近乎圆形的曲线。但为了示例,我只是创建了一些 (x,y) 形成的圆
目前,我正在尝试通过使用 PatchCollections 创建代理艺术家 (?) 补丁来制作自己的自定义图例处理程序,然后按照 http://matplotlib.org/users/legend_
目前,我正在尝试通过使用 PatchCollections 创建代理艺术家 (?) 补丁来制作自己的自定义图例处理程序,然后按照 http://matplotlib.org/users/legend_
让我们使用 FancyArrowPatch 在两个散点之间绘制一个箭头: import matplotlib.pyplot as plt import matplotlib as mpl fig, a
我正在尝试使用来自原始其他等高线图的集合来显示填充的等高线图。但是,我遗漏了一些东西,因为我的代码没有完全重现等高线图。 我正在处理的最少代码: import numpy as np import m
我有一些由标量值(整数)着色的补丁。现在我想创建一个图例,为特定颜色/整数值的补丁命名。这是我迄今为止尝试过的: import matplotlib.pyplot as plt from matplo
PatchCollection 接受一个 Patches 列表,并允许我一次将它们全部转换/添加到 Canvas 。但是在构建 PatchCollection 对象之后对其中一个 Patch 的更改不
假设我使用第三方函数 magic_plot(data, ax),它根据提供的数据向轴添加补丁集合。让我们进一步假设我想更改已添加的特定补丁的颜色。我怎么做? from numpy.random imp
我将一组补丁分组到一个 PatchCollection 中,然后将其作为一个集合添加到坐标区。建立拾取事件的回调。当我单击其中一个补丁时,将触发 pick 事件并调用回调,但该事件的艺术家成员是 Pa
我有一个生成异构网格然后绘制补丁的函数。它为每个 bin 指定上下 x 和 y 边缘。例如,单个 bin 由向量 [x0, x1, y0, y1] 定义。这些坐标转换为 bin: y1|---
我使用(简化的)以下代码在图像上覆盖补丁: import matplotlib.pyplot as plt from scipy.misc import imread from matplotlib.
我正在根据变量值中设置的值绘制补丁。 pc = PatchCollection(patches, match_original=True) norm = Normalize() cmap = plt
我正在策划 PatchCollection在 matplotlib 中,带有从文件中读入的坐标和色 block 颜色值。 问题是 matplotlib 似乎会自动将颜色范围缩放到数据值的最小/最大值。
我做了很多像这样的补丁 - node.shape = RegularPolygon((node.posX, node.posY), 6,
3种不同的旋转度数: 嗨,我正在尝试旋转 Matplotlib Collections.PatchCollection(圆圈)。我无法保持相同的旋转点。 import numpy as np impo
我正在将 Shapely MultiPolygon 转换为 PatchCollection,并首先像这样为每个多边形着色: # ldn_mp is a MultiPolygon cm = plt.ge
我编写了一个Python代码,可以生成不同尺寸的矩形。但是,我无法使边缘颜色与面部颜色相匹配。这是我的代码的相关部分: # Mapping row information to geometry an
我是一名优秀的程序员,十分优秀!