2

我正在使用带有以下代码的 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')

在此处输入图像描述

4

1 回答 1

2

使用 plotnine,您可以手动指定比例,以便您可以创建任何您想要的。cmap在尝试手动创建自己的渐变(使用)之前,我个人通常会查看 matplotlib 的渐变(使用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)

在此处输入图像描述

于 2020-03-13T22:52:20.967 回答