Я хотел бы дать список переменных для определения группы / цвета в эстетике 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 исход
в 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
Каким будет эквивалент Python color = paste(B, C), group = paste(A, B, C)
?