我有以下数据:

data= structure(list(inv_kT = c(42.6123919742007, 42.4799809266797, 
42.4722825012597, 42.4510843820046, 42.4193914112338, 42.4122074755519, 
42.3764231025678, 42.3067291931282, 42.1980484435468, 42.1420505628077, 
42.0840522587684, 42.0218386653298, 41.9609504123289, 41.8854603414116, 
41.8158696171797, 41.8158696171797, 41.7619829798769, 41.702520428422, 
41.6554420516226, 41.6383703319267, 41.6197908437627, 41.6197908437627, 
41.5936651167378, 41.5145777106756, 41.4985915801753, 41.4453949718182, 
41.4453949718182, 41.4591160881044, 41.271072066776, 41.271072066776, 
41.0120282074906, 40.8657100886557, 41.0774968826629, 41.0774968826629, 
41.0025400642, 40.9028738414799, 40.9028738414799, 41.007896375581, 
41.0083442824568, 41.0083442824568, 41.0390268480029, 41.0390268480029, 
41.0130046153368, 41.1646411216982, 41.1646411216982, 41.1797646554088, 
41.1797646554088, 41.1956860463927, 41.2194706851824, 41.2194706851824
), ln_SR = c(4.91998092582813, 4.63472898822964, 4.77068462446567, 
4.56434819146784, 4.77068462446567, 4.82028156560504, 4.80402104473326, 
4.61512051684126, 4.56434819146784, 4.40671924726425, 4.35670882668959, 
4.27666611901606, 4.15888308335967, 4.11087386417331, 4.11087386417331, 
4.12713438504509, 4.02535169073515, 3.98898404656427, 3.93182563272433, 
3.73766961828337, 3.66356164612965, 3.58351893845611, 3.58351893845611, 
3.85014760171006, 3.85014760171006, 4.29045944114839, 4.24849524204936, 
4.17438726989564, 4.29045944114839, 4.38202663467388, 5.19849703126583, 
5.37063802812766, 4.89034912822175, 4.74493212836325, 4.69134788222914, 
4.80402104473326, 4.62497281328427, 4.30406509320417, 4.26267987704132, 
4.23410650459726, 4.29045944114839, 3.89182029811063, 3.68887945411394, 
3.63758615972639, 3.46573590279973, 3.40119738166216, 3.40119738166216, 
3.3322045101752, 3.3322045101752, 3.13549421592915)), row.names = c(NA, 
-50L), class = c("tbl_df", "tbl", "data.frame"))

我试着将它与Babline和第二个x轴一起绘制:

library(ggplot2)
library(scales)

k <- 8.617333262145e-05 # Boltzmann constant in eV/K
ggplot(data, aes(x = inv_kT, y = ln_SR)) +
  geom_point(color="black") +
     geom_abline(slope = -0.70, intercept=32.72)

enter image description here

当我try 添加第二个轴并反转比例时:

ggplot(data, aes(x = inv_kT, y = ln_SR)) +
  geom_point(color="black") +

     geom_abline(slope = -0.70, intercept=32.72)+
  scale_x_continuous(
    trans="reverse",
    sec.axis=sec_axis(trans=~ (1/.)/k-273.15, 
                                    name="Temperature (°C)",
                                     breaks=pretty_breaks(n=5)))

白线消失了,我不明白为什么.

enter image description here

为什么它不和轴一起运动呢?我知道如果我用正数替换斜率,就会出现白线,但我也需要修改截距吗?

推荐答案

这是一个已知的issue,当你反转你的轴时,geom_abline不会变换.您不需要修改截取,因为您只需要反转x轴,而不是y轴.您可以稍微更改坡度以获得所需的结果,如下所示:

library(ggplot2)
library(scales)

k <- 8.617333262145e-05 # Boltzmann constant in eV/K
ggplot(data, aes(x = inv_kT, y = ln_SR)) +
  geom_point(color="black") +
  geom_abline(slope = abs(-0.70), intercept=32.72) +
  scale_x_continuous(
    trans="reverse",
    sec.axis=sec_axis(trans=~ (1/.)/k-273.15, 
                      name="Temperature (°C)",
                      breaks=pretty_breaks(n=5))) 

创建于2023-03-29,共reprex v2.0.2

R相关问答推荐

给定R中另一行中的值,如何插补缺失值

更改网格的crs以匹配简单要素点对象的crs

有没有方法将琴弦完全捕捉到R中的多边形?

ggplot geom_smooth()用于线性回归虚拟变量-没有回归线

保存包含循环和ifelse的函数的输出

如何 bootstrap glm回归、估计95%置信区间并绘制它?

如何修复R码的置换部分?

次级y轴R gggplot2

将向量组合到一个数据集中,并相应地命名行

使用较长的查询提取具有部分匹配的列表中的较短目标,

R spatstat Minkowski Sum()返回多个边界

如何从容器函数中提取conf并添加到ggplot2中?

根据列表中项目的名称合并数据框和列表

如果COLSUM为>;0,则COLNAME为向量

将数据集旋转到长格式,用于遵循特定名称模式的所有变量对

如何预测原始数据集并将值添加到原始数据集中

当由base::限定时,`[.factor`引发NextMethod错误

将数据从一列转换为按组累计计数的单个虚拟变量

有没有办法将勾选/审查标记添加到R中的累积关联图中?

基于已有ID列创建唯一ID