Matplotlib有一些新的非常方便的彩色图(tab colormap).我想念的是生成像tab20b或tab20c这样的色彩映射但有三个色调级别而不是四个色彩的功能?
这个解决方案有点复杂,有一个更容易吗?
skip = []
for i in range(0,len(cm.colors)//4+1):
skip.append(4*i)
# the colormap is called Vega in my Matplotlib version
cm = plt.cm.get_cmap('Vega20c')
cm_skip = [cm.colors[i] for i in range(len(cm.colors)) if i not in skip]
for i, c in enumerate(cm_skip):
x = np.linspace(0,1)
y = (i+1)*x + i
plt.plot(x, y, color=c, linewidth=4)
Run Code Online (Sandbox Code Playgroud)
编辑:此SO帖子中提供了更通用的方法.
如何使用 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()
Run Code Online (Sandbox Code Playgroud)
我希望内部颜色是外部颜色的阴影(绿色、蓝色和橙色),但我不知道如何相应地更改它们。 …