r - 减少 ggplot 图例中的变量数
问题描述
我在 R 中有以下数据框:
eta x.1 x.2 x.3 y.1 y.2 y.3 xz.1 xz.2 xz.3
eta.0 1 28.00000 28.00000 28.00000 -1.0000000 -1.0000000 -1.0000000 -1.0000000 -1.0000000 -1.0000000
eta.01 2 27.99999 27.99999 27.99995 -0.9999824 -0.9999824 -0.9999555 -0.9999999 -0.9999999 -0.9999988
eta.1 3 27.98915 28.00041 27.99914 -0.9948991 -0.9996051 -0.9987214 -0.9996547 -1.0000389 -1.0000022
eta.5 4 25.57216 27.98243 27.98737 0.0000000 -0.9922089 -0.9954901 -0.8380154 -0.9995550 -0.9996936
eta.10 5 25.38172 25.94990 28.04486 0.0000000 0.0000000 -1.0172488 -0.8670870 -0.9492688 -1.0004286
我曾经gather
构建一个新的数据框并想绘制每个变量。我现在正在尝试绘制所有变量,但是,我想将它们对应于第二个数字一起绘制。所以我想将 , 和 一起绘制x.1
并y.1
创建xz.1
一个只有三个变量的图例,比如Model 1
, Model 2
, Model 3
in ggplot
。
library(tidyverse)
# Gather dataframe
df.gather <- gather(df, "variables", "value", 2:ncol(df))
shapes <- rep(c(15,16,17),3)
colours <- c("#c97a76","#5abd47","#3160e1")
names <- c("Model 1", "Model 2", "Model 3")
ggplot <- ggplot(df.gather, aes(x = eta, y = value, col=variables, group = variables, shape = variables))+
geom_point()+
geom_line(show.legend = F)+
expand_limits(y=30)+
scale_shape_manual(values = shapes, guide = F)+
ylab("Point Estimate")+
theme(axis.line = element_line(colour = "black"),
axis.ticks.length = unit(.25,"cm"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank(),
legend.key = element_blank(),
legend.box.background = element_rect(color="black", size=0.5))+
scale_color_manual(values = c(rep(colours,3)), guide = F)
我目前有下面的情节,但试图弄清楚是否可以将每个模型合并为 1,并且图例中只有“模型 1”、“模型 2”和“模型 3”对应于形状和颜色。
提前致谢。
解决方案
推荐阅读
- html - css透明块通过黑暗父级
- ruby-on-rails - 如何做一个 RSpec oneliner 来测试一个 :count 变化
- bash - 如何使用 bash 在单行上查找只有模式的文本文件
- swift - 防止 VoiceOver 将 UIButton 读取为“可能的文本”
- ms-access - 如何自动断开空闲用户与 MS Access DB 的连接?
- python-2.7 - 为什么这两个循环的打印不同
- android - 使用意图打开下载的文件
- python - 如何在 PowerPoint 演示文稿中使用 Pandas Styler 对象?
- html - 如何在css中自上而下之前从左到右流动多列元素?
- php - 解析 simpleXML