新手在这里。我有一个脚本来创建有点像这样的图形:
png(Test.png)
ht=hist(step[i],20)
curve(insert_function_here,add=TRUE)
我基本上想在直方图上绘制分布曲线。我的问题是轴限制显然是由直方图而不是曲线设置的,因此曲线有时会超出Y轴限制。我玩过par(“usr”),但没有用。有没有办法根据直方图或曲线的最大值设置轴限制(或者,替代地,仅限曲线)?如果这改变了什么,这需要在for循环中完成,其中绘制了多个这样的图并且在一系列子图(par(“mfrow”))内。
答案 0 :(得分:3)
受到其他答案的启发,这就是我最终做的事情:
curve(insert_function_here)
boundsc=par("usr")
ht=hist(A[,1],20,plot=FALSE)
par(usr=c(boundsc[1:2],0,max(boundsc[4],max(ht$counts))))
plot(ht,add=TRUE)
它根据曲线或直方图的最高值来固定边界。
答案 1 :(得分:2)
你可以确定mx< - max(curve_vector,ht $ counts)并设置ylim =(0,mx),但我更怀疑代码看起来像是因为[]不是一个正确的参数传递成语和步骤不是R绘图功能,而是模型选择功能。所以我猜这是Matlab或其他成语中的代码。在R中,试试这个:
set.seed(123)
png("Test.png")
ht=hist(rpois(20,1), plot=FALSE, breaks=0:10-0.1)
# better to offset to include discrete counts that would otherwise be at boundaries
plot(round(ht$breaks), dpois( round(ht$breaks), # plot a Poisson density
mean(ht$counts*round(ht$breaks[-length(ht$breaks)]))),
ylim=c(0, max(ht$density)+.1) , type="l")
plot(ht, freq=FALSE, add=TRUE) # plot the histogram
dev.off()
答案 2 :(得分:1)
您可以先绘制曲线,然后使用plot = FALSE计算直方图,并使用add = TRUE的直方图对象上的绘图功能将其添加到绘图中。
更好的方法是计算曲线的最高y值(根据曲线的性质可能有快捷方式)和柱状图中的最高柱,并将此值赋予ylim参数。绘制直方图。