首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >plotnine/ggplot -更改图例位置

plotnine/ggplot -更改图例位置
EN

Stack Overflow用户
提问于 2020-03-18 10:40:19
回答 2查看 209关注 0票数 2

我有这个数据框架:

代码语言:javascript
复制
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'}})

我在哪里绘制了这个:

代码语言:javascript
复制
(ggplot(df, aes(ymin = "ymin", ymax = "ymax",
     xmin = "xmin", xmax = "xmax", fill = "variable"))
 + geom_rect(colour = "grey", alpha=0.7))

我希望将图例的位置更改为与情节的位置相同:蓝色向上和红色底部。A将始终为红色,B将始终为蓝色

EN

回答 2

Stack Overflow用户

发布于 2020-04-04 13:17:03

也许有一种更标准的方法可以做到这一点,但这里有一个快速解决问题的方法:

  1. 更改变量

的顺序

  1. 手动指定颜色(您也可以查找准确的颜色代码,如果对您的情况有影响,则将其替换为颜色名称)

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"))

输出如下所示:

票数 1
EN

Stack Overflow用户

发布于 2020-03-18 11:29:36

您可以使用df$variable <- factor(df$variable, levels = c("B","A")设置级别的顺序

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60732791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档