我目前正在尝试重现一个如下图:
忽略右侧的刻度尺,图表上有两个y轴。 X是VIP分数,y标度由绝对回归系数的加权和确定,但是该标度不可见,并且在左侧y轴上看到质量。在这种情况下,质量是分类变量,它们匹配绝对回归系数的加权和的连续变量中的每个值。
我的问题是我如何使用ggplot2或其他R包来重现这个?使用ggrepel直接标记点不是一个选项,因为我的数据集中有太多的质量。有没有办法用两个y轴创建散点图但是第二个y轴是一个分类变量?
示例数据:
Masses Overall VIP1
1 82.07010 38.26669006 1.484957089
2 84.08570 34.22745192 1.328724766
3 95.08570 38.65684978 1.500047945
4 96.08571 13.13685100 0.512968559
5 98.10140 36.07639404 1.400239372
6 99.04410 17.37079280 0.676731759
7 105.07530 9.38047849 0.367677099
8 110.10130 36.66816959 1.423128458
9 111.10160 13.64197654 0.532506138
10 113.06040 10.09391101 0.395271714
答案 0 :(得分:0)
这看起来很可怕,但这正是你所要求的。调用您的数据dd
:
ggplot(dd, aes(x = VIP1, y = Overall)) +
geom_point() +
scale_y_continuous(breaks = dd$Overall, labels = dd$Masses)
我们使用scale_y_continuous
因为您想要定义y轴位置的变量Overall
是连续的。
使用此数据:
dd = read.table(text = " Masses Overall VIP1
1 82.07010 38.26669006 1.484957089
2 84.08570 34.22745192 1.328724766
3 95.08570 38.65684978 1.500047945
4 96.08571 13.13685100 0.512968559
5 98.10140 36.07639404 1.400239372
6 99.04410 17.37079280 0.676731759
7 105.07530 9.38047849 0.367677099
8 110.10130 36.66816959 1.423128458
9 111.10160 13.64197654 0.532506138
10 113.06040 10.09391101 0.395271714", header = TRUE)