- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
是否可以给 scipy.spatial.Voronoi
上色?图表? I know it is.
但现在我的目标是根据色标为每个单元格着色以表示物理量。
如下图(PRL 107, 155704 (2011)):
而且我还想知道是否可以计算每个单元格的面积,因为这是我想计算的数量
最佳答案
实际上是 link您提供的代码提供了为 Voronoi 图着色所需的代码。为了给每个单元格分配一个代表物理量的颜色,您需要使用 Map values to colors in matplotlib 中所示的方法将该物理量的值映射到标准化颜色图。 .
例如,如果我想为每个单元格分配一种与数量“速度”相对应的颜色:
import numpy as np
import matplotlib as mpl
import matplotlib.cm as cm
import matplotlib.pyplot as plt
from scipy.spatial import Voronoi, voronoi_plot_2d
# generate data/speed values
points = np.random.uniform(size=[50, 2])
speed = np.random.uniform(low=0.0, high=5.0, size=50)
# generate Voronoi tessellation
vor = Voronoi(points)
# find min/max values for normalization
minima = min(speed)
maxima = max(speed)
# normalize chosen colormap
norm = mpl.colors.Normalize(vmin=minima, vmax=maxima, clip=True)
mapper = cm.ScalarMappable(norm=norm, cmap=cm.Blues_r)
# plot Voronoi diagram, and fill finite regions with color mapped from speed value
voronoi_plot_2d(vor, show_points=True, show_vertices=False, s=1)
for r in range(len(vor.point_region)):
region = vor.regions[vor.point_region[r]]
if not -1 in region:
polygon = [vor.vertices[i] for i in region]
plt.fill(*zip(*polygon), color=mapper.to_rgba(speed[r]))
plt.show()
)
scipy.spatial.Voronoi
允许您访问每个单元格的顶点,您可以订购并应用 shoelace formula .我还没有对输出进行足够的测试以了解 Voronoi 算法给出的顶点是否已经排序。但如果没有,您可以使用点积来获取每个顶点的向量与某个引用向量之间的角度,然后使用这些角度对顶点进行排序:
# ordering vertices
x_plus = np.array([1, 0]) # unit vector in i direction to measure angles from
theta = np.zeros(len(vertices))
for v_i in range(len(vertices)):
ri = vertices[v_i]
if ri[1]-self.r[1] >= 0: # angle from 0 to pi
cosine = np.dot(ri-self.r, x_plus)/np.linalg.norm(ri-self.r)
theta[v_i] = np.arccos(cosine)
else: # angle from pi to 2pi
cosine = np.dot(ri-self.r, x_plus)/np.linalg.norm(ri-self.r)
theta[v_i] = 2*np.pi - np.arccos(cosine)
order = np.argsort(theta) # returns array of indices that give sorted order of theta
vertices_ordered = np.zeros(vertices.shape)
for o_i in range(len(order)):
vertices_ordered[o_i] = vertices[order[o_i]]
# compute the area of cell using ordered vertices (shoelace formula)
partial_sum = 0
for i in range(len(vertices_ordered)-1):
partial_sum += vertices_ordered[i,0]*vertices_ordered[i+1,1] - vertices_ordered[i+1,0]*vertices_ordered[i,1]
partial_sum += vertices_ordered[-1,0]*vertices_ordered[0,1] - vertices_ordered[0,0]*vertices_ordered[-1,1]
area = 0.5 * abs(partial_sum)
关于python - 如何根据色标给 voronoi 上色?以及每个单元格的面积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41244322/
通过阅读文档,我确信这是明确声明的,但添加图标仍然是灰色的。 class _TaskState extends State { @override Widget b
通过阅读文档,我确信这是明确声明的,但添加图标仍然是灰色的。 class _TaskState extends State { @override Widget b
这个问题在这里已经有了答案: Get random elements from array in Swift (6 个答案) 关闭 7 年前。
你好,我有一个表,其中包含一些字段,例如 这里我想为表格整行设置颜色..意味着如果 ASR 值是 75 到 100 应该得到一种颜色,50 到 75 应该得到另一种颜色,低于 50 应该得到另一种颜色
如何为 fish 中的 ls 命令着色?我在 Mac 上使用带有适当字体等的 ITerm2。由于某种原因它停止在我的电脑上工作。当我做推荐的时候 function ls command ls
我尝试在 -webkit-transform:rotate(45deg) skew(5deg); 上添加颜色或背景色,但我没有尝试。请帮助我。 我有这个 Sencha Touch 的代码: .x-ch
我使用默认配色方案(稍作改动),没有着色插件。 不幸的是,现在我需要在无法使用 256 色模式的远程机器上工作(使用 Putty)。这看起来很纯净。 我尝试修复它,但我无法理解不同部分的突出显示名称是
是否可以给 scipy.spatial.Voronoi 上色?图表? I know it is. 但现在我的目标是根据色标为每个单元格着色以表示物理量。 如下图(PRL 107, 155704 (20
我正在使用 ggplot2 geom_bar 制作标准条形图。我试图用与最低值的条不同的颜色填充最高值的条。 例如, ggplot(mtcars, aes(x=as.factor(cyl) )) +
我正在尝试对 map 上的特定图 block 进行样式设置,但不知道如何设置。谷歌有一个我在这里指的图 block 的示例: https://developers.google.com/maps/do
我想通过添加一个名为“色调”的 Canvas 来为 Canvas 上的 png 着色,该 Canvas 会将颜色分配给主 Canvas 上的 png。但根本没有绘制任何东西: js fiddel co
我创建了一个模糊 View 并添加到主视图的 subview 中。这是我的代码: let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.ligh
我正在尝试实现与 this function in Matlab 相同的行为,其中每个箭头的颜色对应于它的大小和方向,本质上是从轮子中绘制它的颜色。我看到了this question ,但它似乎只适用
假设有一个fa图标: //这段代码不正确 我的目的是为奖杯本身着色,而不是为奖杯外的背景着色。现在我的奖杯看起来是黑色的,我怎样才能把奖杯的颜色改成黄色? 最佳答案 Font awesome 是
你好我正在做一个 Twitter 应用程序,我想给主题标签、用户名和 URL 上色这是我的手机上的课 class TweetTableViewCell: UITableViewCell { var t
我在下面尝试过,但它在解析颜色时抛出了一个语句错误。提前致谢。 hexColorStr = "0x0976b8" view.setBackgroundColor(Color.parseColor(St
我需要显示一个由圆形和多边形组成的 map ,每个圆形或多边形可能有不同的颜色。 我最初的计划是子类化 MKCircle 和 MKPolygon 并为我的 Region 类添加一个实例变量(其中包含将
我有以下用于生成箭头线的 ng 模板:
我正在使用 Git,使用 Windows 7、PowerShell 和 Posh-Git。我有以下别名设置: ls = log --pretty=tformat:"%C(yellow)%h\\ %C(
我是一名优秀的程序员,十分优秀!