r - 有没有办法可以使用 RStudio 将日志网格线添加到我的图表中?
问题描述
我目前正在尝试使用 Rstudio创建剂量反应曲线tidydrc
,并且正在使用该软件包。我想知道是否有一种方法可以添加次要网格线,因为x-axis
is log
.
这是我到目前为止所拥有的图像
这是我到目前为止的代码:
tidydrc_plot(Nifedipinedrc,ed50=FALSE) +
scale_x_log10() +
geom_errorbar(aes(ymin=g$Nifedipine-g$SD, ymax=g$Nifedipine+g$SD, x=Nifedipinedrc[[1]][[1]]$d, y=Nifedipinedrc[[1]][[1]]$r)) +
ggtitle("graph") +
labs(x="Concentration", y= "Force")
我知道这绝对是一团糟的代码,但我完全是自学成才,我觉得我在这方面有点碰壁,因为我实际上并不了解目前堆栈上的很多指南。
解决方案
这是一个可用于对minor_breaks
数刻度参数的函数。提议的函数使用了来自 ggplot2 的未导出函数,所以我有点作弊。不过,这可能只适用于 log10 轴,您可能希望通过theme()
设置进一步突出主要网格线。
library(ggplot2)
# A function factory for minor log breaks
minor_breaks_log <- function(base) {
# Prevents lazy evaluation
force(base)
# Wrap calculation in a function that the outer function returns
function(limits) {
ggplot2:::calc_logticks(
base = base,
minpow = floor(log(limits[1], base = base)),
maxpow = ceiling(log(limits[2], base = base))
)$value
}
}
ggplot(msleep, aes(bodywt, brainwt)) +
geom_point() +
scale_y_log10(minor_breaks = minor_breaks_log(10)) +
scale_x_log10(minor_breaks = minor_breaks_log(10))
#> Warning: Removed 27 rows containing missing values (geom_point).
由reprex 包于 2020-12-02 创建(v0.3.0)
推荐阅读
- ios - class_replaceMethod 类别方法 return nil
- typeerror - 使用 whois-json 的 Sinon 测试错误
- django - Django HttpResponseRedirect 和 NoReverseMatch
- python-3.x - 检测图像中是否包含所需的对象
- spring-boot - Spring-boot Camel SQL中的ResultSet缓存
- php - FPDF 自动调整单元格大小
- angular - Angular Typescript Generic Class 不会抛出错误
- visual-studio-2017 - 构建时的 NuGet 更新(VS2017 Pro)
- android - 如何在后台使用应用程序在 Android 上进行网络通话
- android - 错误类放置自动完成