我无法使用积木素:我无法制作3类(按颜色分隔)的图形。
import pandas as pd
import numpy as np
from plotnine import *
path = '/home/punkproger/workspace/MyWorkPython/TestWork/galaxy_identificator/data/train.csv'
df = pd.read_csv(path)
my_plot = ggplot(data=df[:30000], mapping=aes(x='ra', fill='class', color='class')) + geom_density( alpha=0.7)
print(my_plot)
每1万个样本中就有一个新的“类别”(0-2)。
结果将是:
但是如果我将样本数更改为10k(只有1个类):
import pandas as pd
import numpy as np
from plotnine import *
path = '/home/punkproger/workspace/MyWorkPython/TestWork/galaxy_identificator/data/train.csv'
df = pd.read_csv(path)
my_plot = ggplot(data=df[:10000], mapping=aes(x='ra', fill='class', color='class')) + geom_density( alpha=0.7)
print(my_plot)
结果是:
现在,这个拥有阶级和色彩的头衔。 我想在一个平面上制作3个图形,例如:
我是plotine的newbee,看不出有什么问题。花了很多时间尝试使用google来解决这个问题。
您可以在此处下载数据:https://drive.google.com/file/d/1IMK1YtXG8Zl1lY8JJ12RtzDpHn65vQKi/view
答案 0 :(得分:0)
抱歉,我无法下载您的数据,但这是包含模拟数据的解决方案。
import numpy as np
import pandas as pd
from plotnine import *
np.random.seed(0)
df = pd.DataFrame({'x': np.hstack((
np.random.normal(size=1000),
np.random.normal(10, 2, size=1000),
np.random.normal(-10, 2, size=1000))),
'c': [0]*1000 + [1]*1000 + [2]*1000})
(ggplot(df, aes('x', color='c', fill='c')) + geom_density(alpha=0.7))
赞这个:
获取前1,000行(对应于c == 0
):
(ggplot(df[:1000], aes('x', color='c', fill='c')) + geom_density(alpha=0.7))
现在创建分类变量:
df['cat'] = df['c'].astype('category')
(ggplot(df, aes('x', color='cat', fill='cat')) + geom_density(alpha=0.7))