r - 使用R增加ggplot中log x轴某些值之间的分辨率?
问题描述
在 R 中使用 ggplot,我想增加 x 轴上值 1 周围的值之间的距离,即在 0.8 和 1.2 之间。
set.seed(123)
library(ggplot2)
somedatasetx <- append(round(runif(100,0.2,10),2),round(runif(100,0.8,1.2),2))
somedatasety <- round(runif(200,0.2,10),2)
ggplot(data=NULL, aes(x=somedatasetx, y=somedatasety)) +
geom_point(color="red") +
scale_x_log10(
breaks=c(0.2,1,10),
limits=c(0.2,11)
)
我的价值观集中在这些限制附近。简而言之,有没有办法将 0.8 到 1.2 之间的距离扩大,以便可视化该区域的值?另一种说法是,我希望上图中从 0.8 到 1.2 的值范围从 0.5 到 5?显然,x 轴上的对数刻度由于此操作而受到影响。
编辑:也许有一种方法可以在 x 轴上结合连续和 log10 比例?比如说,在 0.2 到 1.2 之间连续,并且从那里及以上的 log10?如果我可以控制每个 x 轴上的比例,那可能就是解决方案。就是不知道有没有可能。
解决方案
我认为ggforce是您的想法。这个怎么样?
library(ggplot2)
library(ggforce)
somedatasetx <- append(round(runif(100,0.2,10),2),round(runif(100,0.8,1.2),2))
somedatasety <- round(runif(200,0.2,10),2)
to_plot = data.frame( x = somedatasetx, y = somedatasety )
ggplot(data = to_plot, aes(x = x, y = y)) +
geom_point(color = "red") +
facet_zoom(xlim = c( 0.8, 1.2 ) )
这样,您可以在顶部面板中获得原始图,在底部面板中获得突出显示的区域。
推荐阅读
- python - NO_READ_ACCESS_TO_S3 在 AWS Translate 上调用 StartTextTranslationJob
- android - 在android片段中禁用软键盘(使其永远不会出现在片段中)?
- python-3.x - 我怎样才能使这些字符串 '1\u202f327' "1\u202f489" 可用?
- laravel - Mail-in-a-box 升级后 Laravel 5.1 的电子邮件问题
- javascript - 为什么这段代码没有重定向到这个网址?
- asp.net-mvc - Identity Server 4 将参数添加到登录页面
- javascript - 如何保证两个不同功能的 sessionStorage 互不干扰?
- excel - 如何从 Excel 列中过滤掉错误/0
- google-app-engine - nodejs 应用在 AppEngine 标准环境中运行时未收到 SIGTERM
- turing-machines - 图灵机和可判定性