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)

enter image description here

我们使用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 轴比例的不同图形

Matlab中用plot画图,x轴和y轴比例不一致

请问用Origin如何将多条同一横纵坐标的曲线以不同的层次显示在同一张图上,如下图所示呢???

将R ggplot中直方图中的y轴标准化为比例

在gnuplot中绘制两个轴

s-s-rS 图表 Y 轴分为三个比例