半对数图轴标记和功能不出现在R中(Semi log plot axis labelling and function doesn't appear in R)

系统教程 行业动态 更新时间:2024-06-14 16:59:47
半对数图轴标记和功能不出现在R中(Semi log plot axis labelling and function doesn't appear in R)

我正在尝试使用x中的对数轴创建一个绘图,从10 ^ -8到10 ^ -3,只标记其他每个刻度,并且y轴从0到100。 我无法设置标记每个其他刻度,并且该功能不会出现在图表上 有谁知道我哪里出错了?

参数

c4=1e-6 c5=2 K3=1e-6 R1=0.02 R2=0.05 R3=0.2

功能

g <- function(x,c5,K3,R,c4) { z = (c5*K3*x)/(R*c4-c5*x) return(z) } z1 <- g(x, c5, K3, R1, c4) z2 <- g(x, c5,K3,R2,c4) z3 <- g(x, c5,K3,R3,c4)

情节

plot(x, z1, log="x", lty=3, xaxt="n", yaxt="n", xlim=c(10^-8, 10^-3), ylim=c(0, 100), main="Fig 2B", xlab="[Ca2+] in cytosol (M)", ylab="[InsP3] (nM))") axis(side=2, at= seq(0,100, by=10), labels= c(0, FALSE, 20, FALSE, 40, FALSE, 60, FALSE, 80, FALSE, 100), srt=90) xticks <- seq(-7, -3, by=2) xlabels <- sapply(xticks, function(i) as.expression(bquote(10^ .(i)))) axis(side=1, at=c(10^-7, 10^-5, 10^-3), labels=xlabels) lines(x, z2, lty=2) lines(x, z3, lty=1)

I'm trying to create a plot with a log axis in x, going from 10^-8 to 10^-3, with only every other ticks labelled, and an y axis from 0 to 100. I can't manage to label every other tick, and the function doesn't appear on the graph Does anyone know where I've gone wrong?

Parameters

c4=1e-6 c5=2 K3=1e-6 R1=0.02 R2=0.05 R3=0.2

Function

g <- function(x,c5,K3,R,c4) { z = (c5*K3*x)/(R*c4-c5*x) return(z) } z1 <- g(x, c5, K3, R1, c4) z2 <- g(x, c5,K3,R2,c4) z3 <- g(x, c5,K3,R3,c4)

Plot

plot(x, z1, log="x", lty=3, xaxt="n", yaxt="n", xlim=c(10^-8, 10^-3), ylim=c(0, 100), main="Fig 2B", xlab="[Ca2+] in cytosol (M)", ylab="[InsP3] (nM))") axis(side=2, at= seq(0,100, by=10), labels= c(0, FALSE, 20, FALSE, 40, FALSE, 60, FALSE, 80, FALSE, 100), srt=90) xticks <- seq(-7, -3, by=2) xlabels <- sapply(xticks, function(i) as.expression(bquote(10^ .(i)))) axis(side=1, at=c(10^-7, 10^-5, 10^-3), labels=xlabels) lines(x, z2, lty=2) lines(x, z3, lty=1)

最满意答案

以下是此问题的两种解决方案:

1)将每个其他标签设置为NA(不是你试过的FALSE)

plot(1:10, axes = FALSE) axis(1, at = 1:10, labels = c(NA, 2, NA, 4, NA, 6, NA, 8, NA, 10))

2)添加轴两次。 一旦没有标签就可以得到刻度线,一次带有你想要的标签

plot(1:10, axes = FALSE) axis(1, at = 1:10, labels = FALSE) axis(1, at = seq(2, 10, 2))

Here are two solutions to this problem:

1) Set every other label to NA (not FALSE as you tried)

plot(1:10, axes = FALSE) axis(1, at = 1:10, labels = c(NA, 2, NA, 4, NA, 6, NA, 8, NA, 10))

2) Add the axis twice. Once without labels to get just the tick marks, and once with the labels you want

plot(1:10, axes = FALSE) axis(1, at = 1:10, labels = FALSE) axis(1, at = seq(2, 10, 2))

更多推荐

本文发布于:2023-04-17 09:09:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/dzcp/fea84c67965efd82d6e959ecca4eb159.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:不出   对数   标记   功能   Semi

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!