我喜欢在绘图时生成自己的网格线,因此我可以控制刻度线等等.我正在使用'hist'绘图程序来解决这个问题.
hist(WindSpeed, breaks=c(0:31), freq=TRUE, col="blue", xaxt="n", yaxt="n", xlab="Wind Speed (m/s)",main="Foo", cex.main=1.5, cex.axis=1, cex.lab=1, tck=1, font.lab=2)
axis(1, tck=1, ,col.ticks="light gray")
axis(1, tck=-0.015, col.ticks="black")
axis(2, tck=1, col.ticks="light gray", lwd.ticks="1")
axis(2, tck=-0.015)
minor.tick(nx=5, ny=2, tick.ratio=0.5)
box()
Run Code Online (Sandbox Code Playgroud)
情节:

然后我就可以使用'lines'或'points'命令在其他类型的图上重新绘制数据,但是直方图并不那么容易.
任何帮助都会很棒.
我在下面添加了我的代码并根据John的回复图像...
我在下面添加了我的代码并根据John的回复图像...
hist(WindSpeed, breaks=30, freq=TRUE, col="blue", xaxt="n", yaxt="n", xlab="Wind Speed (m/s)",main="Foo", cex.main=1.5, cex.axis=1, cex.lab=1, font.lab=2)
axis(1, tck=1, col.ticks="light gray")
axis(1, tck=-0.015, col.ticks="black")
axis(2, tck=1, col.ticks="light gray", lwd.ticks="1")
axis(2, tck=-0.015)
minor.tick(nx=5, ny=2, tick.ratio=0.5)
box()
hist(WindSpeed, add=TRUE, breaks=30, freq=TRUE, col="blue", xaxt="n", yaxt="n", xlab="Wind Speed (m/s)", main="Foo", cex.main=1.5, cex.axis=1, cex.lab=1, font.lab=2)
Run Code Online (Sandbox Code Playgroud)

Aar*_*ica 28
实际上,R有办法做到这一点!它的panel.first参数plot.default,它hist要求做的大部分工作.它需要一个表达式,在设置绘图轴之后但在进行任何绘图之前进行评估.这对于绘制背景网格或散点图光滑度非常有用,"引用?plot.default.
hist(WindSpeed, breaks=c(0:31), freq=TRUE, col="blue", xaxt="n", yaxt="n",
xlab="Wind Speed (m/s)", main="Foo",
cex.main=1.5, cex.axis=1, cex.lab=1, tck=1, font.lab=2,
panel.first={
axis(1, tck=1, col.ticks="light gray")
axis(1, tck=-0.015, col.ticks="black")
axis(2, tck=1, col.ticks="light gray", lwd.ticks="1")
axis(2, tck=-0.015)
minor.tick(nx=5, ny=2, tick.ratio=0.5)
box()
})
Run Code Online (Sandbox Code Playgroud)
请参阅如何使用数据后面的abline()绘制网格线?对于另一个使用此方法的问题.
Joh*_*ohn 16
这相对容易.
生成直方图但不绘制它.
h <- hist(y, plot = FALSE)
Run Code Online (Sandbox Code Playgroud)
现在生成基础图...我添加了一些功能,使其看起来更像标准的历史图
plot(h$mids, h$counts, ylim = c(0, max(h$counts)), xlim = range(h$mids)*1.1,
type = 'n', bty = 'n', xlab = 'y', ylab = 'Counts', main = 'Histogram of y')
Run Code Online (Sandbox Code Playgroud)
添加你的网格
grid()
Run Code Online (Sandbox Code Playgroud)
添加你的直方图
hist(y, add = TRUE)
Run Code Online (Sandbox Code Playgroud)
或者,正如我通过这个过程发现的......你可以更轻松地完成它
hist(y)
grid()
hist(y, add = TRUE, col = 'white')
Run Code Online (Sandbox Code Playgroud)
最后一种方法只是重绘网格上的直方图.
在R中,当您绘制时,顺序很重要.正如您所发现的那样,在绘图中添加内容会增加您之前绘制的内容.所以我们需要一种方法来首先绘制网格,然后绘制直方图.尝试这样的事情:
plot(1:10,1:10,type = "n")
grid(10,10)
hist(rnorm(100,5,1),add = TRUE)
Run Code Online (Sandbox Code Playgroud)

我没有重新创建你的例子,因为它不可重复,但这个一般的想法应该有效.但关键的想法是使用type = "n"选项to创建具有正确尺寸的空图plot,然后添加网格,然后使用add = TRUE参数添加直方图.
请注意,add参数实际上是for plot.histogram,hist将其传递给via ....
| 归档时间: |
|
| 查看次数: |
26729 次 |
| 最近记录: |