在python的ggplot美学中按多个变量分组

时间:2019-05-09 13:48:13

标签: python r ggplot2 python-ggplot

我想给出一个变量列表,以定义ggplot的美学效果中的组/颜色。

在R中,我会做类似的事情:

library(ggplot2)
library(dplyr)

dfList = list()
for (i in 0:2){
    for (j in 0:2){
        for(k in 10*(0:2)){
            arrX = 0:19
            arrY = i * arrX * arrX + j * arrX + k
            random_df = data.frame('X'=arrX, 'Y'=arrY)
            random_df$A = i
            random_df$B = j
            random_df$C = k

            dfList[[paste0(i, j, k)]] = random_df
        }
    }
}

outDF = bind_rows(dfList)
print(outDF %>% ggplot(aes(x = X, y = Y, color = paste(B, C), group = paste(A, B, C))) + geom_line() + facet_wrap(~A))

然后进入以下页面:

R结果

enter image description here

在python中看起来像这样,因为我不能使用很多分组变量:

from ggplot import *
import numpy as np

dfList = {}
for i in range(3):
    for j in range(3):
        for k in list(np.multiply(10,range(3))):
            arrX = range(20)
            arrY = i*np.multiply(arrX,arrX)+np.multiply(j,arrX)+k
            random_df = pd.DataFrame({'X':arrX, 'Y':list(arrY)})
            random_df['A'] = i
            random_df['B'] = j
            random_df['C'] = k

            dfList[str(i)+str(j)+str(k)] = random_df
outDF = pd.concat(dfList)

print ggplot(aes(x='X', y='Y', color='B', group='C'), data=outDF)+geom_line()+facet_wrap('A')

我最终得到这样的东西:

Python结果

enter image description here

相当于color = paste(B, C), group = paste(A, B, C)的python是什么?

0 个答案:

没有答案