我有这个数据框架:
df = pd.DataFrame({'ymin': {0: 0.0,
1: 0.0,
2: 0.0,
3: 0.0,
4: 0.511,
5: 0.571,
6: 0.5329999999999999,
7: 0.5389999999999999},
'ymax': {0: 0.511,
1: 0.571,
2: 0.533,
3: 0.539,
4: 1.0,
5: 1.0,
6: 1.0,
7: 1.0},
'xmin': {0: 0.0,
1: 0.14799999999999996,
2: 0.22400000000000003,
3: 0.5239999999999999,
4: 0.0,
5: 0.14799999999999996,
6: 0.22400000000000003,
7: 0.5239999999999999},
'xmax': {0: 0.148,
1: 0.22399999999999998,
2: 0.524,
3: 1.001,
4: 0.148,
5: 0.22399999999999998,
6: 0.524,
7: 1.001},
'variable': {0: 'A', 1: 'A', 2: 'A', 3: 'A', 4: 'B', 5: 'B', 6: 'B', 7: 'B'}})我在哪里绘制了这个:
(ggplot(df, aes(ymin = "ymin", ymax = "ymax",
xmin = "xmin", xmax = "xmax", fill = "variable"))
+ geom_rect(colour = "grey", alpha=0.7))

我希望将图例的位置更改为与情节的位置相同:蓝色向上和红色底部。A将始终为红色,B将始终为蓝色
发布于 2020-04-04 13:17:03
也许有一种更标准的方法可以做到这一点,但这里有一个快速解决问题的方法:
的顺序
df = df.assign(variable = pd.Categorical(df'variable','B','A')) (ggplot(df,aes(ymin = "ymin",ymax = "ymax",xmin = "xmin",xmax = "xmax",fill = "variable"))+ geom_rect(colour =“灰色”,alpha=0.7)+ scale_fill_manual(values = "blue","red"))
输出如下所示:

发布于 2020-03-18 11:29:36
您可以使用df$variable <- factor(df$variable, levels = c("B","A")设置级别的顺序
https://stackoverflow.com/questions/60732791
复制相似问题