Группировка по нескольким переменным в эстетике ggplot на python - PullRequest
0 голосов
/ 09 мая 2019

Я хотел бы дать список переменных для определения группы / цвета в эстетике 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

Каким будет эквивалент Python color = paste(B, C), group = paste(A, B, C)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...