我使用 python 版本的 ggplot 和以下代码并附加了图像,但颜色不足以为所有类别着色。我想知道如何获得具有更多颜色的调色板,但仍然保留数字较低的颜色较浅,而数字较高的颜色较深的关系。
pretty = p9.ggplot(data=s2_test3, mapping = p9.aes(x='index', y='value', colour = "equity_as_number"))+ p9.geom_point(alpha = 0.02)
pretty = pretty + p9.facet_grid("gender~outcome")
pretty + p9.geom_smooth(method = 'loess') + p9.scale_color_brewer(type ='seq')
最佳答案
使用plotnine,您可以手动指定比例,以便您可以创建任何您想要的内容。我个人通常会先查看 matplotlib 的渐变(使用 cmap
),然后再尝试手动创建自己的渐变(使用 gradient*
)。
以下是一些音阶示例,您可以根据自己的喜好进行调整。
df = pd.DataFrame({"x": range(100), "y": [0]*100, color="x"})
plt = p9.ggplot(p9.aes(x="x", y="y", fill="x"), df) + p9.geom_tile() + p9.themes.theme_void()
scale_fill_gradient*
函数类允许您指定自己的任意渐变。如果您真的很挑剔,您可以花时间使用这些函数并获得您想要的任何颜色渐变。
plt1 = plt + p9.scale_fill_gradient(low="#FFFFFF", high="#000044",guide=False)
scale_fill_cmap
类允许您指定 matplotlib 的颜色渐变,可以在此处找到:https://matplotlib.org/3.1.0/tutorials/colors/colormaps.html
plt2 = plt + p9.scale_fill_cmap(name="gist_ncar",guide=false)
您可以使用 scale_fill_desaturate
创建缓慢去饱和的比例
plt3 = plt + p9.scale_fill_desaturate(color="blue",guide=False)
关于 python 情节9: color brewer not enough,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60085500/