设置 r 中绘图轴的格式
我想在双对数图中绘制贝塔分布。
x <- seq(0, 1, length=1001)
y <- dbeta(x, 0.1, 0.1)
plot(x, y, type="h", log="xy")
xtics 设置为
0.001
0.005
0.01 (without label)
0.05
0.1 (without label)
0.5
1 (without label)
如何确定:
为主要小数位置给出标签(1.0、0.1、0.01、0.001、0.0001,...)
应该在小数点之间的第 9 位绘制抽动位置(对于 0.01 和 0.1 之间的区域,它将是 0.01、0.02、0.03,....)
最大 y 范围应为 0.5
感谢您的帮助。
斯文
I want to plot a beta distribution in a double logarithmic plot.
x <- seq(0, 1, length=1001)
y <- dbeta(x, 0.1, 0.1)
plot(x, y, type="h", log="xy")
The xtics are set at
0.001
0.005
0.01 (without label)
0.05
0.1 (without label)
0.5
1 (without label)
How can I determine:
that labels are given for the main decimal positions (1.0, 0.1, 0.01, 0.001, 0.0001,...)
that tics should be drawn for 9 position between the decimal positions (for the region between 0.01 and 0.1 it would be 0.01, 0.02, 0.03,....)
that the maximum y-range should be 0.5
Thanks for your help.
Sven
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
为了更好地控制轴,请分别绘制它们,因此首先在
plot()
调用中使用参数axes = FALSE
抑制轴:然后根据需要添加轴 问题 2 可以用同样的方式回答
,您只需要指定刻度线的位置,也许将
axis()
调用中的参数tcl
设置为比默认值小一点(即-0.5
)。棘手的一点是生成您想要的小刻度。我只能想出这个:或者
两者都给出:
我们通过另一个调用
axis()
来使用它们:我们在这里使用
labels = NA
抑制标签。您只需要弄清楚如何为at
生成向量...将这两个步骤放在一起,我们得到:
生成:
至于问题3,最大范围是什么意思?您可以使用
plot()
的ylim
参数设置 y 轴的限制。您像这样提供限制(最小值和最大值)但是范围本身不足以定义限制,您需要告诉我们要在绘图上显示的最小值或最大值之一或值的实际范围你想要的。
For fine control of the axes, plot them separately, so first suppress the axes by using argument
axes = FALSE
in theplot()
call:Then add the axes as you want them
Question 2 can be answered in the same way, you just need to specify the locations for the tick marks, perhaps setting argument argument
tcl
in theaxis()
call to be a bit smaller than default (which is-0.5
). The tricky bit is in generating the minor ticks you want. I could only come up with this:or
which both give:
We use them via another call to
axis()
:We suppress labels here using
labels = NA
. You just need to work out how to do the vectors forat
...Putting the two steps together we have:
Which produces:
As for question 3, what do you mean the maximum range? You can set the limits on the y-axis using the
ylim
argument toplot()
. You provide the limits (min and max) like soBut a range on it's own is not sufficient to define the limits, you'd need to tell us one of the min or max values to show on the plot or the actual range of values you want.
试试这个:
Try this: