如何使我的垂直标签适合我的绘图窗口?

时间:2010-11-08 22:04:28

标签: r

我在R中创建一个直方图,显示矢量中几个事件的频率。每个事件由[1,9]范围内的整数表示。我正在图表的垂直下方显示每个计数的标签。这是代码:

hist(vector, axes = FALSE, breaks = chartBreaks)
axis(1, at = tickMarks, labels = eventTypes, las = 2, tick = FALSE) 

不幸的是,标签太长了,所以它们会被窗户的底部切掉。我怎样才能让它们可见?我甚至使用正确的图表吗?

4 个答案:

答案 0 :(得分:10)

查看help(par),特别是字段mar(边距)和oma(外边距)。 它可能就像

一样简单
par(mar=c(5,3,1,1))   # extra large bottom margin
hist(vector, axes = FALSE, breaks = chartBreaks)
axis(1, at = tickMarks, labels = eventTypes, las = 2, tick = FALSE) 

答案 1 :(得分:9)

这听起来不像直方图的作业 - 事件不是连续变量。条形图或点图可能更合适。

一些虚拟数据

set.seed(123)
vec <- sample(1:9, 100, replace = TRUE)
vec <- factor(vec, labels = paste("My long event name", 1:9))

通过barplot()函数生成条形图 - 为方便起见,我们使用table()函数为每个事件提供计数。在这里,我们需要使用las = 2旋转标签,并在边距

中创建一些额外的标签空间
## lots of extra space in the margin for side 1
op <- par(mar = c(10,4,4,2) + 0.1)
barplot(table(vec), las = 2)
par(op) ## reset

点图是通过函数dotchart()生成的,并且为我们排序绘图边距提供了额外的便利

dotchart(table(vec))

点图比使用更少墨水显示相同信息的条形图更有优势,并且侧重于组间计数的差异,而不是计数的大小。

请注意我是如何设置数据的。这允许我们将事件标签存储为因子的标签 - 从而自动标记图中的轴。它也是一种自然的方式来存储我理解你的数据。

答案 2 :(得分:0)

或许在标签中添加\ n,以便它们包裹在2行上?它不是最佳的,但可能有效。

答案 3 :(得分:0)

您可能希望从Cross Validated

中查看此post