R中同一图上相同比例的两个y轴
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R中同一图上相同比例的两个y轴相关的知识,希望对你有一定的参考价值。
我目前正在尝试重现一个如下所示的情节:
忽略右侧的刻度尺,图表上有两个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
答案
这看起来很糟糕,但这正是你所要求的。调用您的数据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)
以上是关于R中同一图上相同比例的两个y轴的主要内容,如果未能解决你的问题,请参考以下文章
Plotly.js:覆盖两个具有相同 x 轴和不同 y 轴比例的不同图形