如何不成比例地分割 y 轴以更好地在图中显示数据

2024-01-11

我有一个名为的 data.framefinal看起来像:

             labels        gvs order color       f3
1            Adygei -2.3321916     1     1 353.0184
2            Basque -0.8519079     2     1 368.1515
3            French -0.9298674     3     1 365.2545
4           Italian -2.8859587     4     1 354.4481
5          Orcadian -1.4996229     5     1 350.9650
6           Russian -1.5597359     6     1 358.9736
7         Sardinian -1.4494841     7     1 355.1171
8            Tuscan -2.4279528     8     1 362.4717
9           Bedouin -3.1717421     9     2 319.3706
10            Druze -0.5058627    10     2 346.2211
11         Mozabite -2.6491331    11     2 299.5014
12      Palestinian -0.7819299    12     2 330.4576
13          Balochi -1.4095947    13     3 327.1238
14           Brahui -1.2534511    14     3 331.0927
15          Burusho  1.7958170    15     3 335.0919
16           Hazara  2.2810477    16     3 325.2444
17           Kalash -0.9258497    17     3 337.7116
18          Makrani -0.9007551    18     3 321.5726
19           Pathan  2.5543214    19     3 326.1923
20           Sindhi  2.6614486    20     3 318.7025
21            Uygur -1.2207974    21     3 322.0286
22        Cambodian  2.3706977    22     4 310.8989
23              Dai -0.9441980    23     4 305.5687
24             Daur -1.0325107    24     4 309.0984
25              Han -0.7381369    25     4 309.1198
26           Hezhen -2.7590587    26     4 296.9128
27         Japanese -0.5644325    27     4 297.9313
28             Lahu -0.8449225    28     4 307.0776
29             Miao -0.7237586    29     4 303.6593
30          Mongola -0.9452944    30     4 302.1380
31             Naxi -0.1625003    31     4 311.8019
32           Oroqen -1.2035258    32     4 308.7219
33              She -2.7758460    33     4 302.1271
34               Tu -0.7703779    34     4 307.3750
35            Tujia -1.0265275    35     4 303.5923
36             Xibo -1.1163019    36     4 295.5764
37            Yakut -3.2102686    37     4 315.0111
38               Yi -0.9614190    38     4 296.8134
39        Colombian -1.9659984    39     5 311.3134
40        Karitiana -0.9195156    40     5 300.8539
41             Maya  2.1239768    41     5 333.8995
42             Pima -3.0895998    42     5 325.3484
43            Surui -0.9377928    43     5 313.8505
44       Melanesian -1.6961014    44     6 294.5214
45           Papuan -0.7037952    45     6 286.7389
46       BantuKenya -1.9311354    46     7 152.9971
47 BantuSouthAfrica -1.8515908    47     7 133.6722
48       BiakaPygmy -1.7657017    48     7 117.5555
49         Mandenka -0.5423822    49     7 152.8525
50       MbutiPygmy -1.6244801    50     7 114.1691
51              San -0.9049735    51     7   0.0000
52           Yoruba  2.0949378    52     7 154.4460

我正在使用以下代码来制作图表

jpeg("F3.SCZ.Jul_22.jpg", 700,700)
final$color <- as.factor(final$color)
levels(final$color) <- c("blue","yellow3","red","pink","purple","green","orange")
plot(final$gvs, final$f3, cex=2,pch = 21, bg = as.character(final$color), xaxt="n", xlab="Genetic Values", ylab="F3", main="SCZ")
dev.off()

看起来像:

我想分割y-axis当值为 200 时,y 值范围为 0 到 200,仅占图形的 10%,而 200 到 400 则占 y 轴的 90%。那可能吗?

EDIT:

以下是遇到问题的数据:

             labels        gvs order color         f3
1            Adygei -2.3321916     1     1 0.09862109
2            Basque -0.8519079     2     1 0.09942770
3            French -0.9298674     3     1 0.10357547
4           Italian -2.8859587     4     1 0.09960179
5          Orcadian -1.4996229     5     1 0.10244666
6           Russian -1.5597359     6     1 0.10097691
7         Sardinian -1.4494841     7     1 0.10189642
8            Tuscan -2.4279528     8     1 0.09794686
9           Bedouin -3.1717421     9     2 0.09272493
10            Druze -0.5058627    10     2 0.09682272
11         Mozabite -2.6491331    11     2 0.08563901
12      Palestinian -0.7819299    12     2 0.09331649
13          Balochi -1.4095947    13     3 0.09227273
14           Brahui -1.2534511    14     3 0.09328593
15          Burusho  1.7958170    15     3 0.09396032
16           Hazara  2.2810477    16     3 0.09342432
17           Kalash -0.9258497    17     3 0.09666599
18          Makrani -0.9007551    18     3 0.09222257
19           Pathan  2.5543214    19     3 0.09468376
20           Sindhi  2.6614486    20     3 0.09172395
21            Uygur -1.2207974    21     3 0.09140727
22        Cambodian  2.3706977    22     4 0.08655821
23              Dai -0.9441980    23     4 0.08739080
24             Daur -1.0325107    24     4 0.08656669
25              Han -0.7381369    25     4 0.08764395
26           Hezhen -2.7590587    26     4 0.08802065
27         Japanese -0.5644325    27     4 0.08810874
28             Lahu -0.8449225    28     4 0.08609791
29             Miao -0.7237586    29     4 0.08700414
30          Mongola -0.9452944    30     4 0.08921706
31             Naxi -0.1625003    31     4 0.08646436
32           Oroqen -1.2035258    32     4 0.08719536
33              She -2.7758460    33     4 0.08656100
34               Tu -0.7703779    34     4 0.08818588
35            Tujia -1.0265275    35     4 0.08737680
36             Xibo -1.1163019    36     4 0.08806230
37            Yakut -3.2102686    37     4 0.08965344
38               Yi -0.9614190    38     4 0.08593454
39        Colombian -1.9659984    39     5 0.09114697
40        Karitiana -0.9195156    40     5 0.09040477
41             Maya  2.1239768    41     5 0.09068139
42             Pima -3.0895998    42     5 0.09084750
43            Surui -0.9377928    43     5 0.08925535
44       Melanesian -1.6961014    44     6 0.08430903
45           Papuan -0.7037952    45     6 0.08272786
46       BantuKenya -1.9311354    46     7 0.04668356
47 BantuSouthAfrica -1.8515908    47     7 0.03914248
48       BiakaPygmy -1.7657017    48     7 0.03546243
49         Mandenka -0.5423822    49     7 0.04612336
50       MbutiPygmy -1.6244801    50     7 0.03098719
51              San -0.9049735    51     7 0.00000000
52           Yoruba  2.0949378    52     7 0.04561542

你可以做:

my_color <- as.factor(final$color)
levels(my_color) <- c("blue","yellow3","red","pink","purple","green","orange")

par(mfrow = c(1,2))

# original plot
pos <- seq(min(final$f3), max(final$f3), by = 25)  ## y-axis tick marks position.
plot(final$gvs, final$f3, cex=2, pch=21, bg = as.character(my_color),
     xaxt="n", yaxt="n", xlab="Genetic Values", ylab="F3", main="SCZ")
axis(2, at = pos, labels = pos)  ## add y-axis

# new plot
threshold <- 260  ## cut off threshold
## some rescaling
## if f3 < threshold, we take new_f3 <- 0.1 * f3
## if f3 > threshold, we take new_f3 <- f3 - 0.9 * threshold
new_f3 <- ifelse(final$f3 < threshold, 0.1 * final$f3, final$f3 - threshold * 0.9)
## we apply the same transform to `pos` to get `new_pos`
new_pos <- ifelse(pos < threshold, 0.1 * pos, pos - threshold * 0.9)

plot(final$gvs, new_f3, cex=2, pch=21, bg = as.character(my_color),
     xaxt="n", yaxt="n", xlab="Genetic Values", ylab="F3", main="SCZ")
abline(h = threshold * 0.1, lty = 3)   # threshold line
axis(2, at = new_pos, labels = pos)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何不成比例地分割 y 轴以更好地在图中显示数据 的相关文章

  • 如何使用“NA”作为字符串

    我有一个 csv 文件 其中一列是字符类型 该变量的很少有值是 NA 字符串 但是当我使用 read csv 读取 R 中的 csv 文件时 NA 字符串存储为 NA 我该如何修复它 您可以使用na strings论证中read csv r
  • 使用格式表过滤数据框

    样本数据 修改自formattablegithub 文档 df lt data frame id 1 10 name c Bob Ashley James David Jenny Hans Leo John Emily Lee age c
  • 在 R 中,如何获得某些向量值的所有可能组合?

    背景 我有一个需要一些参数的函数 我想要获得所有可能的参数组合的函数结果 一个简化的例子 f lt function x y return paste x y sep colors c red green blue days c Monda
  • 将 SAS sas7bdat 数据读入 R

    R 有哪些选项可以读取本机 SAS 格式的文件 sas7bdat 进入R The NCES 共同核心 https nces ed gov ccd pubschuniv asp例如 包含以此格式保存的大量数据文件存储库 为了具体起见 让我们集
  • 如何使用 R 更改 png 文件的大小

    我正在绘制 png 文件并获取一张小图片 你知道一些可以改变 png 图大小的简单代码吗 我的地块太高太 薄 另外有没有办法改变情节的分辨率 谢谢 伊格尔 png png filename Rplot 03d png width 480 h
  • 计算网格中物种的出现次数

    我有大约500 000点R美国各地候鸟物种的出现数据 我试图在这些点上覆盖网格 然后计算每个网格中出现的次数 统计完计数后 我想将它们引用到网格单元 ID 在 R 中 我使用了over 函数只获取范围图中的点 这是一个形状文件 Read i
  • R:交换两个变量而不使用第三个变量

    我有两个变量 即 a lt 1 b lt 2 我想交换他们的价值观 是否有任何内置的 R 函数能够执行该操作 或者是否有其他优雅的方式 而不使用第三个 临时 变量 Note 如果可能的话适用于字符串或其他数据类型 有一个通用的解决方案或 技
  • 将 stat_smooth 添加到 ggplot2 中的仅 1 个方面

    我有一些数据 在某个因素的某个水平上 存在显着的相关性 在另一个层面上 则没有 并排绘制这些图很简单 使用 stat smooth 向它们添加一行 也很简单 但是 我不希望线条或其填充显示在两个面之一中 有没有一种简单的方法可以做到这一点
  • OpenStreetMap 不显示在 RStudio 中(使用 R 3.2.1)

    我正在使用来自的代码here https rstudio github io leaflet library leaflet m lt leaflet gt addTiles gt addMarkers lng 174 768 lat 36
  • 将多个函数应用于一个向量

    我正在寻找一种将多个函数应用于一个向量的选项 我认为这对于逆应用函数来说是一种仁慈 其中一个函数应用于许多向量 或列 有没有办法指定两个或多个函数 例如 min 和 max 并将其应用于向量 与 CathG的评论类似 但没有get v lt
  • R:适合显示具有倾斜计数的数据的图

    我有这样的数据 Name Count Object1 110 Object2 111 Object3 95 Object4 40 Object2000 1 因此 只有前 3 个物体的计数较高 其余 1996 个物体的数量少于 40 个 其中
  • 如何从数据框中按降序获取前n家公司

    我正在尝试从数据框中获取排名前 n 的公司 下面是我的代码 data Forbes2000 package HSAUR sort Forbes2000 profits decreasing TRUE 现在我想从这个排序向量中获取前 50 个
  • R闪亮:基于checkboxgroupinput的子集数据

    我想根据复选框输入动态选择的列对数据进行子集 有什么方法可以使我的输入文件在我的代码中全局可用 以便可以方便地进行进一步的操作 以下是我的代码 Server R library shiny shinyServer function inpu
  • 闪亮的仪表板侧边栏中的可折叠菜单项

    我的侧边栏中有两个菜单项 目前 如果我单击任何菜单项 则会显示所有菜单项的选项卡项 我想让它可折叠 如果我单击多个名称菜单 单个分析应该折叠 如果我单击单个分析 多个分析应该折叠 目前的设计是 相同的可重现代码是 library shiny
  • 如何使用 Rrank() 函数创建新的ties.method? [复制]

    这个问题在这里已经有答案了 我试图按人口和日期排序这个数据框 所以我使用order and rank 功能 gt df lt data frame idgeoville c 5 8 4 3 4 5 8 8 date c rep 1950 4
  • do.call 的 envir 选项如何工作?

    的文档do call states If quote is FALSE 默认值 然后对参数进行求值 在调用环境中 而不是在envir 这句话向我暗示 当quote FALSE 指定envir没有什么区别 然而 事实并非如此 事实上我遇到过需
  • 包什么时候需要为它自己的对象使用 :::

    考虑这个 R 包有两个函数 一个是导出函数 另一个是内部函数 hello R export hello lt function internalFunctions hello internal 你好 内部 R hello internal
  • ggplot2以限制为中心的多边形世界地图给出了有趣的边缘

    使用下面的代码我生成了一张以华盛顿特区为中心的地图 解决方案基于科斯克的解决方案在这里 https stackoverflow com questions 10620862 use different center than the pri
  • 使用 alpha 通道叠加两个 ggplot2 stat_密度2d 图

    我想叠加两个ggplot2使用 alpha 通道进行绘图 结果图像显示两个数据集 这是我的测试数据 data read table text P1 1 0 4 nP2 0 0 2 nP3 2 1 8 nP4 2 2 6 nP5 0 5 2
  • 将 r 中的一列从出生日期更改为年龄

    我是第一次使用 data table 我的表中有大约 400 000 个年龄的列 我需要将它们从出生日期转换为年龄 做这个的最好方式是什么 我一直在思考这个问题 到目前为止对这两个答案都不满意 我喜欢用lubridate 就像 KFB 所做

随机推荐