R 条形图轴缩放

标签 r plot scale axis-labels

我想用一些 x 轴标签绘制一些数据的条形图,但到目前为止,我一直遇到同样的问题,因为轴缩放完全不受限制,因此我的标签错误地定位在条形下方。
我能想到的最简单的例子:

x = c(1:81)
barplot(x)
axis(side=1,at=c(0,20,40,60,80),labels=c(20,40,60,80,100))

如您所见,x 轴不会沿着整个图延伸,而是停在中间的某处。在我看来,问题似乎很简单,但不知何故我无法解决它,到目前为止我找不到任何解决方案:(

任何帮助是极大的赞赏。

最佳答案

问题是barplot真的是为绘制分类数据而不是数字数据而设计的,因此它在设置水平轴比例方面几乎可以做自己的事情。解决此问题的主要方法是通过保存 barplot 的结果来恢复条形中点的实际 x 位置。到一个变量,但正如你在下面看到的,我没有想出一种优雅的方式来做你想要的基本图形。也许其他人可以做得更好。

x = c(1:81)
b <- barplot(x)
## axis(side=1,at=c(0,20,40,60,80),labels=c(20,40,60,80,100))
head(b)

你可以在这里看到实际的中点位置是 0.7, 1.9, 3.1, ... -- 而不是 1, 2, 3 ...

这非常快,如果您不想将轴从 0 扩展到 100:
b <- barplot(x)
axis(side=1,at=b[c(20,40,60,80)],labels=seq(20,80,by=20))

这是我在基本图形中做到这一点的最佳方法:
b <- barplot(x,xlim=c(0,120))
bdiff <- diff(b)[1]
axis(side=1,at=c(b[1]-bdiff,b[c(20,40,60,80)],b[81]+19*bdiff),
              labels=seq(0,100,by=20))

你可以试试这个,但条形没有那么漂亮:
plot(x,type="h",lwd=4,col="gray",xlim=c(0,100))

或在 ggplot :
library(ggplot2)
d <- data.frame(x=1:81)
ggplot(d,aes(x=x,y=x))+geom_bar(stat="identity",fill="lightblue",
                   colour="gray")+xlim(c(0,100))

大多数统计图形 Nerd 会告诉你,用点或线而不是条形图更好地绘制定量(x,y)数据(非数据墨水,Tufte,等等等等:-))

关于R 条形图轴缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8285759/

相关文章:

r - 根据图中的两个随机游走构建矩阵

python - 如何让 python matplotlib 刷新所有图形

css - 我怎样才能防止我的图像扩大我的页面宽度?

matlab - 仅在 Matlab 图形中更改刻度线颜色

python - 如何一致地缩放数据帧 MinMaxScaler() sklearn

ios - UIButton-移动和缩放

r - 更有效地将匹配列与data.table中的重复项合并

r - 如何从大量数据中搜索和检索特定列

r - R中按组求和的ddply

python - 设置matplotlib中y轴系数的颜色