【问题标题】:How to set strip label font size in lattice graphics in R如何在R中的格子图形中设置条形标签字体大小
【发布时间】:2012-10-04 00:35:40
【问题描述】:

我创建了一个包含三个面板的格子图。我可以控制轴和刻度标签的字体大小,但我无法弄清楚如何增加条形标签的字体大小。这是一个具体的例子:

# See below for the fake data to run this code
library(lattice)
barchart(choice ~ yes+no+not.app|group, data=data, 
         stack=TRUE, col=c("green","red","blue"), 
         xlim=c(0,100), layout=c(3,1),
         scales=list(cex=c(1.4,1.4), alternating=3),
         xlab=list(label="Percent of Respondents", fontsize=20), 
         main="")

这是这段代码生成的图表。请注意,除了条形标签(“Group 1”、“Group 2”、“Group 3”)之外,所有字体都很好而且很大。我一直在 R-help 和 Stack Overflow 周围钓鱼,但无法解决这个问题。有谁知道魔法咒语吗?

data = structure(list(choice = c("Choice 1", "Choice 1", "Choice 1", 
"Choice 2", "Choice 2", "Choice 2", "Choice 3", "Choice 3", "Choice 3", 
"Choice 4", "Choice 4", "Choice 4"), group = c("Group 1", "Group 2", 
"Group 3", "Group 1", "Group 2", "Group 3", "Group 1", "Group 2", 
"Group 3", "Group 1", "Group 2", "Group 3"), yes = c(23.53, 20.47, 
22.94, 16.51, 16.54, 16.51, 9.68, 13.39, 10.4, 24.48, 29.92, 
25.54), no = c(41.37, 37.01, 40.52, 48.39, 40.94, 46.94, 55.22, 
44.09, 53.06, 40.42, 27.56, 37.92), not.app = c(35.1, 42.52, 
36.54, 35.1, 42.52, 36.54, 35.1, 42.52, 36.54, 35.1, 42.52, 36.54
)), .Names = c("choice", "group", "yes", "no", "not.app"), row.names = c(NA, 
12L), class = "data.frame")

【问题讨论】:

  • 应该注意的是,在 lattice 中,“panel”是指绘图区域内的内容,而“strips”和“labels”通常位于绘图区域之外。
  • 刚看到你的评论,已经更新了标题和文字。

标签: r graphics plot lattice


【解决方案1】:

试试这个(提供示例的好工作):

barchart(choice ~ yes+no+not.app|group, data=data, 
     par.strip.text=list(cex=2),
     stack=TRUE, col=c("green","red","blue"), 
     xlim=c(0,100), layout=c(3,1),
     scales=list(cex=c(1.4,1.4), alternating=3),
     xlab=list(label="Percent of Respondents", fontsize=20), 
     main="")

要了解有关如何管理条带功能的更多信息,请键入:?strip.default 还有其他杠杆可以输入strip.custom。另请参阅 latticeExtra 包,该包能够在带有useOuterStrips 的侧面放置条带。

【讨论】:

  • 啊,神奇的词是strip。我一直在摆弄panel.thispanel.that 的变体,却一无所获。谢谢!
  • 面板函数处理框内显示的内容。所以,是的,神奇的词是“strip”。我承认我花了几年时间才学会了这个神奇的词。
  • 一个小评论:虽然我能够通过trellis.par.set() 全局指定所有类似的命令(例如par.ylab.text = list(cex = 0.8)),但这不适用于par.strip.text=list(cex=2)。它必须在 plot 命令中正确指定。任何想法为什么会这样?
  • 查看“trellis.par.get()”的返回值并阅读该函数的帮助页面。
猜你喜欢
  • 2015-01-22
  • 2012-09-08
  • 2018-08-30
  • 1970-01-01
  • 2021-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多