r - 如何在 ggplot 中创建一个图例,将名称和颜色分配给列而不是数据框列中的值?
问题描述
我一直在寻找在 ggplot 中创建图例的想法,但所有解决方案都只提供图例,这些图例将数据框中单个列的数据按颜色和名称划分为不同的组,组 =“columnname”。这是给出的数据帧的头部:
ewmSlots | ewm值 | ewmValues2 | ewmValues3 |
---|---|---|---|
1 | 0.7785078 | 0.7785078 | 0 |
2 | 0.7198410 | 0.7491744 | 0 |
3 | 0.7333798 | 0.7412771 | 0 |
4 | 0.9102729 | 0.8257750 | 0 |
5 | 0.7243151 | 0.7750450 | 0 |
6 | 0.8706777 | 0.8228614 | 0 |
现在我想要一个以各自的名称和颜色显示 ewmValues、ewmValues2 和 ewmValues3 的图例。
举一个简单的例子,我发现的其他解决方案可以解决这样的问题
时间 | 性别 |
---|---|
午餐 | 男性 |
晚餐 | 女性 |
晚餐 | 男性 |
午餐 | 女性 |
传说会显示性别和每种性别的颜色,这显然不是我想在这里解决的问题。
解决方案
只是融化数据怎么样(让我们将上面的示例称为名为 的数据框ewm
)?
# With melt
ggplot(melt(ewm, id.vars = "ewmSlots"), aes(ewmSlots, value, color=variable, stat='identity')) +
geom_line(size=1.4) + labs(color="")
如果你反对融化,下面给出完全相同的东西:
# Without melt
ggplot(ewm, aes(ewmSlots)) +
geom_line(aes(y=ewmValues, color="ewmValues"), size=1.4) +
geom_line(aes(y=ewmValues2, color="ewmValues2"), size=1.4) +
geom_line(aes(y=ewmValues3, color="ewmValues3"), size=1.4) +
labs(color="", y="value")
推荐阅读
- javascript - 有要求的赠品机器人(消息计数器、角色、语音聊天时间计数器)
- augmented-reality - 找不到 A 帧 gltf
- data-structures - 什么是 count-min 草图?你会在什么时候使用它?
- python - 程序找不到下一个按钮
- list - 如何在 Raku 中无限地懒惰地循环列表?
- flutter - 在没有预定义大小的列中颤动可滚动的 TabBarView
- css - CSS GRID - 创建博客布局
- tfs - 未在 TFS 中“链接”解决方案的项目
- docker - Nginx:564 重写或内部重定向循环,同时内部重定向到“/index.php”
- javascript - 如何使用 ReactJS 在新订单上显示徽章?