我有一个y轴=多样性指数和x轴=深度的数据集。我正在研究多样性如何随深度变化(增加/减少)。在深度上可视化这些变化是有益的(因此变换没有帮助),但是对于不同深度的样本数量之间的差异是困难的(在较浅深度与较深深度处的样本更多。使用以下代码:
breaks_depth=c(0,50,100,150,250,350,450,500,1200)
ggplot(data=df, aes(x=Depth, y=Diversity)) +
geom_line()+
scale_y_continuous(breaks=seq(0,1400,200), limits=c(0,1400))+
scale_x_continuous(breaks=breaks_depth, limits=c(0,1200))
我得到以下情节:
我想得到一个图,使得500米和1200米深度之间的距离更小,更浅的深度(0-150米)之间的距离更大。这可能吗?我尝试过扩展和不同的中断和限制变化。可以找到此数据集的dput()here。 rownames是样本ID,我用于绘图的列是:y轴= invsimpson_rd,x轴= Depth_rd。 TIA。
**** ***** EDIT Winum代码和情节修改自Calum的答案如下。
ggplot(data=a_div, aes(x=Depth_rd, y=invsimpson_rd)) +
geom_line()+
scale_y_continuous(breaks=seq(0,1400,200), limits=c(0,1400))+
scale_x_continuous(trans="log10",breaks = c(0,
15,25,50,100,150,200,250,300,350,400,450, seq(600, 1200, by = 200)))
答案 0 :(得分:2)
以下是内置economics
数据集的示例。您可以看到,您可以按照惯例指定所需的中断,但"sqrt"
转换会将实际绘制的值移动到系列开头附近的更多空间。您也可以使用其他内置转换或定义自己的转换。
编辑:使用示例数据进行更新,并对常见的不同trans
选项进行一些比较。
library(tidyverse)
tbl <- structure(list(yval = c(742, 494, 919, 625, 124, 788, 583, 213, 715, 363, 15, 313, 472, 559, 314, 494, 388, 735, 242, 153, 884, 504, 267, 454, 325, 305, 746, 628, 549, 345, 327, 230, 271, 486, 971, 979, 857, 779, 394, 903, 585, 238, 702, 850, 611, 710, 694, 674, 1133, 468, 784, 634, 234, 61, 325, 505, 693, 1019, 766, 435, 407, 772, 925, 877, 187, 290, 782, 674, 1263, 1156, 935, 499, 791, 797, 537, 308, 761, 744, 674, 764, 560, 805, 540, 427, 711), xval = c(80, 350, 750, 100, 20, 200, 350, 50, 110, 20, 200, 350, 60, 100, 20, 40, 60, 100, 20, 40, 350, 50, 20, 40, 50, 30, 40, 260, 1000, 200, 200, 200, 500, 50, 350, 360, 380, 250, 60, 190, 40, 70, 70, 40, 40, 70, 180, 180, 440, 370, 130, 1200, 20, 20, 30, 80, 120, 200, 220, 120, 40, 80, 350, 750, 20, 80, 200, 320, 500, 220, 160, 80, 140, 350, 100, 40, 350, 100, 200, 340, 60, 40, 100, 60, 40)), .Names = c("yval", "xval"), row.names = c(NA, -85L), class = c("tbl_df", "tbl", "data.frame"))
ggplot(tbl) +
geom_line(aes(x = xval, y = yval)) +
scale_x_continuous(trans = "sqrt", breaks = c(0,50,100,150,250,350,450,500,1200))
ggplot(tbl) +
geom_line(aes(x = xval, y = yval)) +
scale_x_continuous(trans = "log10", breaks = c(0,50,100,150,250,350,450,500,1200))
由reprex package(v0.2.0)创建于2018-04-27。