这是问题:我ggplot用来制作一个图表,其中x轴的范围是-90到90度.我已成功使用函数将度数符号添加到创建的刻度标签中by scale_x_continuous.但是,当我使用调整字体面时theme(),刻度标签不会变为粗体.但是,更改字体大小是有效的.这是一个可重复的例子:
# function to add degree symbols
add_degree <- function(x) {
parse(text = paste(x, "*degree",sep = ""))
}
y<- c(0.00552243346007605, 0.00553155893536122, 0.005693536121673,
0.0054722433460076, 0.00562661596958175, 0.00546768060836502,
0.00561292775665399, 0.00550950570342205, 0.0056851711026616,
0.00551558935361217, 0.0055041825095057, 0.00556501901140684,
0.00552699619771863, 0.00552623574144487, 0.0055680608365019,
0.00567148288973384, 0.00550342205323194, 0.00553764258555133,
0.00538098859315589, 0.00573307984790875, 0.00564486692015209,
0.00561444866920152, 0.00556349809885932, 0.00571254752851711,
0.00544030418250951, 0.00557946768060837, 0.00546083650190114,
0.00549049429657795, 0.00557414448669202, 0.00553916349809886,
0.00551787072243346, 0.00557794676806084, 0.0055041825095057,
0.00552699619771863, 0.0056509505703422, 0.00544790874524715,
0.00555555555555556)
x <- seq(-90,90,by = 5)
dat <- data.frame(x,y)
ggplot(dat,aes(x = x, y = y))+
geom_line()+
scale_x_continuous(limits = c(-90,90), breaks = seq(-90,90, by = 15), labels = add_degree)+
theme_bw() +
theme(
# Adjust axis label and title font sizes below
axis.title = element_text(size=12, face= "bold"),
plot.title = element_text(size=12, face = "bold"),
# Adjust size of tick labels
axis.text.x = element_text(size=12, face = "bold"),
axis.text.y = element_text(size=12, face = "bold"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank(),
axis.line = element_line(colour = "black")
)
Run Code Online (Sandbox Code Playgroud)
我试过调整parse上面的功能,但到目前为止没有运气.我已经查看了以下解决方案,但未能使其工作ggplot:如何在轴标签中使用斜体和粗体,在文本中使用粗体和粗体
这是我的输出sessionInfo():
R version 3.2.2 (2015-08-14)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 14.04.3 LTS
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8
[6] LC_MESSAGES=en_US.UTF-8 LC_PAPER=en_US.UTF-8 LC_NAME=C LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] reshape2_1.4.1 ggplot2_1.0.1 moments_0.14
loaded via a namespace (and not attached):
[1] Rcpp_0.12.0 digest_0.6.8 MASS_7.3-44 grid_3.2.2 plyr_1.8.3 gtable_0.1.2 magrittr_1.5 scales_0.2.5 stringi_0.5-5
[10] proto_0.3-10 labeling_0.3 tools_3.2.2 stringr_1.0.0 munsell_0.4.2 colorspace_1.2-6
Run Code Online (Sandbox Code Playgroud)
Ps我认为这是一个非常相似(如果不相同)的问题,以下未解答的问题:在ggplot中使y轴标签加粗(x轴设置为粗体,但y轴标签不会改变).
任何帮助将不胜感激!
我正在重用从类似问题中获取的函数,这只需要稍微调整一下.
make_labels <- function(value) {
x <- as.character(value)
do.call(expression, lapply(x, function(y) bquote(bold(.(y))^degree)))
}
Run Code Online (Sandbox Code Playgroud)
现在,在你的ggplot电话中而不是add_degree使用labels = make_labels,你会得到
我在这里读到一条评论,其中提到标签采用字符值。函数的输出是一个表达式。更改add_degree()为以下输出字符值而不是表达式,似乎对我有用:
add_degree <- function(x) {\n paste(x, "\xc2\xba",sep = "")\n}\nRun Code Online (Sandbox Code Playgroud)\n\n这是我的输出sessionInfo()
R version 3.0.3 (2014-03-06)\nPlatform: x86_64-apple-darwin10.8.0 (64-bit)\n\nlocale:\n[1] en_CA.UTF-8/en_CA.UTF-8/en_CA.UTF-8/C/en_CA.UTF-8/en_CA.UTF-8\n\nattached base packages:\n[1] stats graphics grDevices utils datasets methods \n[7] base \n\nother attached packages:\n[1] ggplot2_1.0.0\n\nloaded via a namespace (and not attached):\n [1] colorspace_1.2-4 digest_0.6.4 grid_3.0.3 \n [4] gtable_0.1.2 labeling_0.2 MASS_7.3-31 \n [7] munsell_0.4.2 plyr_1.8.1 proto_0.3-10 \n[10] Rcpp_0.11.1 reshape2_1.4 scales_0.2.4 \n[13] stringr_0.6.2 tools_3.0.3 \nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1868 次 |
| 最近记录: |