- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何使用 cmap 的正确 np.array 使内部颜色对应于 matplotlib 中嵌套饼图中的外部颜色深浅?
我尝试使用不同的 cmap 数组,但我不明白这些数组是如何转换为 cmap 颜色的。
import numpy as np
import matplotlib.pyplot as plt
y =np.array([17, 16, 10, 8 ,6, 5, 5, 4, 3, 17 ,2 ,1, 1, 3, 2 ])
x = np.array([74 ,21 ,5])
fig, ax = plt.subplots()
size = 0.3
cmap = plt.get_cmap("tab20c")
outer_colors = cmap(np.arange(3)*4)
inner_colors = cmap(np.array([1, 2, 5, 6, 9, 10]))
ax.pie(x, radius=1, colors=outer_colors,
wedgeprops=dict(width=size, edgecolor='w'))
ax.pie(y, radius=1-size, colors=inner_colors,
wedgeprops=dict(width=size, edgecolor='w'))
ax.set(aspect="equal", title='Pie plot with `ax.pie`')
plt.show()
最佳答案
tab20c
颜色图每个色调有 4 个阴影。因此不可能将其用于 9 个子类别。
A. 扩展每个色调的阴影数
服用 categorical_cmap
来自 matplotlib generic colormap from tab10每个色调获得更多色调。
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors
def categorical_cmap(nc, nsc, cmap="tab10", continuous=False):
if nc > plt.get_cmap(cmap).N:
raise ValueError("Too many categories for colormap.")
if continuous:
ccolors = plt.get_cmap(cmap)(np.linspace(0,1,nc))
else:
ccolors = plt.get_cmap(cmap)(np.arange(nc, dtype=int))
cols = np.zeros((nc*nsc, 3))
for i, c in enumerate(ccolors):
chsv = matplotlib.colors.rgb_to_hsv(c[:3])
arhsv = np.tile(chsv,nsc).reshape(nsc,3)
arhsv[:,1] = np.linspace(chsv[1],0.25,nsc)
arhsv[:,2] = np.linspace(chsv[2],1,nsc)
rgb = matplotlib.colors.hsv_to_rgb(arhsv)
cols[i*nsc:(i+1)*nsc,:] = rgb
cmap = matplotlib.colors.ListedColormap(cols)
return cmap
y =np.array([17, 16, 10, 8 ,6, 5, 5, 4, 3, 17 ,2 ,1, 1, 3, 2 ])
x = np.array([74 ,21 ,5])
fig, ax = plt.subplots()
size = 0.3
cmap = categorical_cmap(3, 10)
outer_colors = cmap(np.array([0, 10, 20]))
ar = np.concatenate((np.arange(1,10), [13,15,17,19], [25,30]))
inner_colors = cmap(ar)
ax.pie(x, radius=1, colors=outer_colors,
wedgeprops=dict(width=size, edgecolor='w'))
ax.pie(y, radius=1-size, colors=inner_colors,
wedgeprops=dict(width=size, edgecolor='w'))
ax.set(aspect="equal", title='Pie plot with `ax.pie`')
plt.show()
import numpy as np
import matplotlib.pyplot as plt
y =np.array([17, 16, 10, 8 ,6, 5, 5, 4, 3, 17 ,2 ,1, 1, 3, 2 ])
x = np.array([74 ,21 ,5])
fig, ax = plt.subplots()
size = 0.3
cmap1 = plt.cm.Reds
cmap2 = plt.cm.Purples
cmap3 = plt.cm.Greens
outer_colors = [cmap1(.8), cmap2(.8), cmap3(.8)]
inner_colors = [*cmap1(np.linspace(.6, .1, 9)),
*cmap2(np.linspace(.6, .2, 4)),
*cmap3(np.linspace(.6, .2, 2))]
ax.pie(x, radius=1, colors=outer_colors,
wedgeprops=dict(width=size, edgecolor='w'))
ax.pie(y, radius=1-size, colors=inner_colors,
wedgeprops=dict(width=size, edgecolor='w'))
ax.set(aspect="equal", title='Pie plot with `ax.pie`')
plt.show()
关于python - 如何在matplotlib的嵌套饼图中使用正确的cmap颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57720935/
我正在尝试创建一个 CMap,它以 CString 作为键,以 CMap 作为值。显然以下内容不起作用,但我不知道它是如何工作的。 CMap, CMap> xyWhatEver; 有人知道如何使用 C
我想要一个 CMap: CMap> 所以我的数据结构将 long 作为一个键,它将重定向到一个值,该值将是其中的 long 的 cmap。 示例:如果我收到“1”,它会将我发送到 CMap。 如果我收
使用 Visual Studio 2012,编译以下内容: void Stuff() { CMap myMap; } 但是当我尝试返回这样的 CMap 时,如下所示: CMap GetEncod
颜色图(contour 和许多其他绘图函数所要求的)和简单的颜色列表之间有什么区别?如何将颜色列表(其中每种颜色应该代表相同大小的步长)转换为颜色图? 最佳答案 颜色图是代表数量概念的一系列颜色。典型
我正在写一段 vimscript 来管理 session 。我想让用户配置他们想要保存 session 的目录,即: let g:sessions_dir = "~/.vim/sessions" 我有
这个问题的灵感来自pheatmap in R中的中断。问题是我是否可以定义我的着色和分箱在seaborn的热图中的“粗糙”程度、连续/离散程度。我找到了一种使用 cmap 和使用的颜色数量(例如 Di
这个问题的灵感来自pheatmap in R中的中断。问题是我是否可以定义我的着色和分箱在seaborn的热图中的“粗糙”程度、连续/离散程度。我找到了一种使用 cmap 和使用的颜色数量(例如 Di
我正在尝试使用颜色图来指示数据集中每个数据点所属的标签。 有3个示例以及对应的标签 X = np.array([[0,0],[1,0],[2,0]]) labels = np.array([0,1,2
我有以下 Python 3 代码,它随时间生成波函数并以 3D 形式绘制结果。请注意,schroedinger1D(...) 函数返回两个 numpy 数组,每个数组的形状为 (36,1000)。 i
我正在尝试使用一些 x、y 和 z 值绘制 matplotlib contourf 图。基本上,z 值将定义绘图的颜色。然而,我现在所在的一个区域(即对我来说重要的区域)与其他区域相比非常小(见图),
以前,我使用 STL 映射来执行上述任务。 struct ltstr { bool operator()(std::string s1, std::string s2) const {
在我的应用程序中,我有一个 CString 值的 CMap。在 Map 中添加元素后,如果我在其他地方检索元素,则不会按插入顺序获取元素。假设我检索第三个元素,我会像那样得到第五个元素。它是 CMap
我有一些形状为 (12,1) 的归一化直方图数据: >>> hnorm array([[ 0. ], [ 0. ], [ 0.011834
我使用“tab20”颜色图在 python 上使用 matplotlib 进行绘图,代码如下: colors=[str(float(year-1980)/(2017-1980)) for i in y
我目前正在使用 PDFKitten 进行 iOS PDF 扫描。我正在尝试提取文本以在具有 Type0 字体的 PDF 中进行搜索。我无法从 PDF 中提取文本。ToUnicode 中的一些条目丢失了
有人能告诉我如何根据特定键获取特定元素吗?假设我有一个 CMap ButtonProp;现在我想访问提供的任何 int 值的属性,该怎么做?附言第一次使用 CMap。 “ButtonProp.Look
AFAIK,CMap::InitHashTable 方法应该在任何元素添加到 map 之前被调用。换句话说,在将第一个元素添加到 CMap 对象后,哈希表的大小无法更改。 同样来自 MSDN,为了尽量
我有一个名为 error_code 的类。我将它用作 std::map 和 CMap (MFC) 的键。我能够使其适用于 std::map,但不适用于 CMap。我可以知道我该怎么做吗? // OK!
我正在尝试将 tex 文档转换为 pdf。 但是当我做 pdflatex doc.tex 时,我得到了 This is pdfTeX, Version 3.14159265-2.6-1.40.16 (
使用此代码生成相关表: df1.drop(['BC DataPlus', 'AC Glossary'], axis=1).corr(method='pearson').style.format("{:
我是一名优秀的程序员,十分优秀!