有没有办法改变轴标题的一部分的样式,同时保持其余部分不变?在我的情况下,我怎么能
在y轴标题中将"细菌X" 斜体化?据我所知,该命令theme(axis.title.y=element_text(face="italic"))只能改变整个y-aixs的标题,是吗?
ggplot(fig1,aes(x=cf,y=Freq,fill=Var1)) +
geom_bar(stat="identity") +
labs(x="Groups",y="No. of bacteria X isolates with corresponding types",fill="Var1") +
theme(axis.title.y=element_text(face="italic"))
Run Code Online (Sandbox Code Playgroud) 我正在使用下面的代码生成带有一些注释的简单图表:
require(ggplot2); data(mtcars)
ggplot(mtcars, aes(x = wt, y = mpg)) +
geom_point() +
annotate("text", x = 4, y = 25, label = "This should be bold\nand this not",
colour = "red") +
geom_vline(xintercept = 3.2, colour = "red")
Run Code Online (Sandbox Code Playgroud)
在该图表上,我想将粗体字体应用于文本注释中短语的第一部分:
这应该是大胆的
但我希望文本的其余部分在字体和样式方面保持不变.
当我做一个地图使用ggplot2,并尝试使用斜体的组合图标题的一部分expression(),并italic()使用一个字符串,我的地图出来的期望:
plottitle <- expression(paste('Example map with ', italic('italics')))
crimes <- data.frame(state = tolower(rownames(USArrests)), USArrests)
states_map <- map_data("state")
map <- ggplot(crimes, aes(map_id = state)) +
geom_map(aes(fill = Murder),
map = states_map) +
expand_limits(x = states_map$long,
y = states_map$lat) +
labs(title = plottitle)
map
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试执行相同的操作,但使用对象而不是字符串时,该对象不会计算为所需的字符串:
word <- 'italics'
plottitle2 <- expression(paste('Example map with ', italic(word)))
map <- ggplot(crimes, aes(map_id = state)) +
geom_map(aes(fill = Murder),
map = states_map) +
expand_limits(x = states_map$long,
y = states_map$lat) + …Run Code Online (Sandbox Code Playgroud) 我正在用摘要统计数据注释我的图表。我想使用粗体字体来快速将用户的注意力吸引到按组划分的最佳/最差统计数据。突出显示的数字需要在运行时由数据本身确定。
以下是使用 ChickWeight 数据集的示例,显示了小鸡体重根据饮食的变化:
library(ggplot2)
library(dplyr)
# Calculate end vs start weights
df <- merge(filter(ChickWeight, Time==21), filter(ChickWeight, Time==0), by=c("Chick", "Diet"))
df$dWeight <- df$weight.x - df$weight.y
# Summary statistics: sd & mean
df.stat <- do.call(data.frame,
aggregate(dWeight ~ Diet,
data=df,
FUN = function(x) c(SD=sd(x), MN=mean(x))))
ggplot(data = df) +
facet_grid(Diet ~ .) +
geom_histogram(binwidth=10, aes(x=dWeight)) +
geom_vline(data=df.stat, aes(xintercept = dWeight.MN), color="black") +
geom_text(data=df.stat, aes(x=Inf,
y=Inf,
label = sprintf("\nmean = %4.1f\nsd = %4.1f",
dWeight.MN, dWeight.SD),
hjust=1,
vjust=1))
Run Code Online (Sandbox Code Playgroud)
在下图中,我只想突出显示以下文本:
在第 3 组中,“mean …