R plotmath - 如何显示撇号
R plotmath - how to display an apostrophe
我正在尝试使用 tableGrob
在 table 中为下面的列名称打印撇号
"Kendall's~tau"
最终结果是整个标签都是斜体的,而 ~
和 tau
没有被解释:
如何正确指定?
我认为它没有帮助,但这是我指定给 tableGrob:
的主题
table_theme <- ttheme_default(
core = list(fg_params=list(fontsize = 6)),
colhead = list(fg_params=list(fontsize = 6, parse=TRUE)),
rowhead = list(fg_params=list(fontsize = 6, parse=TRUE)),
padding = unit(c(2, 3), "mm"))
列名是通过 grDevices
中的 plotmath 解释的——在 R 中生成的图形中指定数学注释的标准方法。
同样,它与如何指定表达式本身无关,但这里是 table 构造函数:
tableGrob(stats_df,
theme = table_theme,
rows = c("Kendall's~tau"))
这是一个可重现的例子:
library(gridExtra)
library(grid)
data(iris)
table_theme <- ttheme_default(rowhead = list(fg_params=list(parse=TRUE)))
grid.table(head(iris),
rows = c(letters[c(1:4)], "plotmath~works~omega", "Kendall's~tau"),
theme = table_theme)
尝试在表达式中使用反斜杠,例如 "Kendall\'s~tau"
。那应该可以了。
这个有效:
library(gridExtra)
library(grid)
data(iris)
table_theme <- ttheme_default(rowhead = list(fg_params=list(parse=TRUE)))
grid.table(head(iris),
rows = c(letters[c(1:4)], "plotmath~works~omega", "Kendall's"~tau),
theme = table_theme)
我尝试使用带有表达式的撇号在 ggplot 中绘图。在我的数据库中,在表达式中使用 ' 无效,但这有效
expression(paste(u,"'",(t),sep=""))
但是这种“粘贴”也会导致子索引表达式 expression(U[0]) 出现不良行为。所以要同时使用两者,这个有效
paste(expression(paste("u","'",sep="")),"/U[0]",sep="")
如果有人知道更简单的方法,我会很高兴。
如果您的撇号嵌入到较长的字符串中,并带有特殊符号,如 ~,这些解决方案将不起作用。我发现唯一有用的是使用正则表达式替换。
#This doesn't work
stringWithApostrophe="Matt's and Louise's diner~...and~also Ben's diner~X^2"
qplot(1:10,1:10)+annotate("text",x=2,y=4,label=stringWithApostrophe,parse=T)
错误:“解析 (text = text[[i]]) 时出错::1:5:意外的字符串常量”
问题是波浪号和撇号等特殊字符出现在同一个引用段中。因此,您必须将“Matt's”与“Louise's”和“~”分开。这是执行此操作的代码。
stringWithApostrophe2<-stringr::str_replace_all(pattern = "([^~()*]*'[^~()*']*)",replacement = "\"\1\"",string=stringWithApostrophe)
qplot(1:10,1:10)+annotate("text",x=2,y=8,hjust=0,label=stringWithApostrophe2,parse=T)
绘图成功。 R 中的 plotmath 正确解析的最终表达式是:
““Matt 和 Louise 的晚餐”~...还有 ~“Ben 的晚餐”~X^2”
我正在尝试使用 tableGrob
"Kendall's~tau"
最终结果是整个标签都是斜体的,而 ~
和 tau
没有被解释:
如何正确指定?
我认为它没有帮助,但这是我指定给 tableGrob:
的主题table_theme <- ttheme_default(
core = list(fg_params=list(fontsize = 6)),
colhead = list(fg_params=list(fontsize = 6, parse=TRUE)),
rowhead = list(fg_params=list(fontsize = 6, parse=TRUE)),
padding = unit(c(2, 3), "mm"))
列名是通过 grDevices
中的 plotmath 解释的——在 R 中生成的图形中指定数学注释的标准方法。
同样,它与如何指定表达式本身无关,但这里是 table 构造函数:
tableGrob(stats_df,
theme = table_theme,
rows = c("Kendall's~tau"))
这是一个可重现的例子:
library(gridExtra)
library(grid)
data(iris)
table_theme <- ttheme_default(rowhead = list(fg_params=list(parse=TRUE)))
grid.table(head(iris),
rows = c(letters[c(1:4)], "plotmath~works~omega", "Kendall's~tau"),
theme = table_theme)
尝试在表达式中使用反斜杠,例如 "Kendall\'s~tau"
。那应该可以了。
这个有效:
library(gridExtra)
library(grid)
data(iris)
table_theme <- ttheme_default(rowhead = list(fg_params=list(parse=TRUE)))
grid.table(head(iris),
rows = c(letters[c(1:4)], "plotmath~works~omega", "Kendall's"~tau),
theme = table_theme)
我尝试使用带有表达式的撇号在 ggplot 中绘图。在我的数据库中,在表达式中使用 ' 无效,但这有效
expression(paste(u,"'",(t),sep=""))
但是这种“粘贴”也会导致子索引表达式 expression(U[0]) 出现不良行为。所以要同时使用两者,这个有效
paste(expression(paste("u","'",sep="")),"/U[0]",sep="")
如果有人知道更简单的方法,我会很高兴。
如果您的撇号嵌入到较长的字符串中,并带有特殊符号,如 ~,这些解决方案将不起作用。我发现唯一有用的是使用正则表达式替换。
#This doesn't work
stringWithApostrophe="Matt's and Louise's diner~...and~also Ben's diner~X^2"
qplot(1:10,1:10)+annotate("text",x=2,y=4,label=stringWithApostrophe,parse=T)
错误:“解析 (text = text[[i]]) 时出错::1:5:意外的字符串常量”
问题是波浪号和撇号等特殊字符出现在同一个引用段中。因此,您必须将“Matt's”与“Louise's”和“~”分开。这是执行此操作的代码。
stringWithApostrophe2<-stringr::str_replace_all(pattern = "([^~()*]*'[^~()*']*)",replacement = "\"\1\"",string=stringWithApostrophe)
qplot(1:10,1:10)+annotate("text",x=2,y=8,hjust=0,label=stringWithApostrophe2,parse=T)
绘图成功。 R 中的 plotmath 正确解析的最终表达式是: ““Matt 和 Louise 的晚餐”~...还有 ~“Ben 的晚餐”~X^2”