如何将连续变量映射到 plotnine 中的颜色?

How to map continuous variable to color in plotnine?

我正在尝试将一个连续变量映射到 plotnine 中的颜色。在 R 中,我可以通过将颜色参数设置为 log(pop) 来做到这一点。在 plotnine 中,我尝试了这个替代方案,但它产生了这个错误:

ValueError: Image size of 300573x430 pixels is too large. It must be less than 2^16 in each direction.

from gapminder import gapminder
import math
p = ggplot(data=gapminder, mapping=aes(x='gdpPercap', y='lifeExp'))
(p + geom_point(mapping=aes(color=[math.log(v) for v in gapminder['pop']]))
   + scale_x_log10()
 )

在字符串中创建表达式。在该字符串中,您可以引用数据框中的列和环境中的变量。使用 numpy 中的向量化函数比使用 math 模块更简单。

from gapminder import gapminder
import numpy as np

p = ggplot(data=gapminder, mapping=aes(x='gdpPercap', y='lifeExp'))
(p + geom_point(mapping=aes(color='np.log(pop)'))
   + scale_x_log10()
 )