【问题标题】:Two y axes on the same scale on the same plot in RR中同一图上相同比例的两个y轴
【发布时间】:2018-05-16 18:45:24
【问题描述】:

我目前正在尝试重现如下所示的情节:

忽略右侧的刻度,图上有两个 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

【问题讨论】:

  • 完全糊涂了。您发布的图上的两个 y 轴是什么?我所看到的只是一个带有数字标签的点图。 (dotplot 表示克利夫兰风格,like this,比较见Wikipedia
  • 你可以使用scale_y_discrete来标记你想要的y轴。如果您共享要绘制的数据(或澄清...你说的是分类的,你希望 y 位置由“绝对回归系数的加权和”确定。那是 Overall 列吗?
  • 我也不确定您是否正确使用了“分类”和“连续”。你的群众看起来是数字的,而不是分类的。在您的示例图中,您说 Y 比例是连续的,但完全均匀的垂直间距使它看起来很明确....
  • 感谢您的回复! @Gregor质量是精确的质量,因此虽然它们可以用作数值变量,但它们也可以被认为是描述性的,因为它们属于一种化合物。所以这里的一个质量相当于一个有机分子的名称。所以你的描述是准确的,VIP1 需要 x 轴,我需要整体(即加权和)来确定 y 轴的比例,但用质量标记 y 轴(即相当于化合物)。我将如何使用 scale_y_discrete 来做到这一点?

标签: r ggplot2 statistics


【解决方案1】:

这看起来很糟糕,但这正是您所要求的。调用你的数据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)

【讨论】:

  • 谢谢!你是对的,我想我必须找到一种不同的方式来表示这些结果,但这正是我想做的。
猜你喜欢
  • 2015-11-26
  • 1970-01-01
  • 1970-01-01
  • 2018-12-05
  • 2021-11-26
  • 2015-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多