这是关于条形图的另一个问题的后续问题: Tornado plot in R
我意识到关于在y轴上获取希腊字母的问题需要作为一个自己的问题。
问题是: 我有以下条形图,需要将y轴更改为相应的希腊字母(以及带有条形的V)。
我使用以下代码:
# Tornado plot
data <- matrix(c(-0.02,0.02,-0.01,0.01,-0.03,0.02,-0.01,0.04), ncol = 4)
rownames(data) <- c('+10%','-10%')
colnames(data) <- c('V_bar', 'alpha', 'rho','xi')
x <- seq(-0.04,0.04, length=10)
barplot(data[1,], horiz = T, las=1, xlim = c(-0.04,0.04), xaxt='n', ylab='',
beside=T, col=c('springgreen'))
barplot(data[2,], horiz = T, las=1, xlim = c(-0.04,0.04), xaxt='n',
yaxt='n', #To prevent double printing of y-labels.
beside=T, col=c('indianred2'), add = TRUE)
axis(1, at=pretty(x), lab=paste0(pretty(x) * 100," %"), las=TRUE)
为了获得希腊字母,我尝试了以下内容:
barplot(data[2,], horiz = T, las=1, xlim = c(-0.04,0.04), xaxt='n',
yaxt= c(expression(bar(V)), expression(alpha),expression(rho), expression(xi)),
beside=T, col=c('indianred2'), add = TRUE))
和
axis(2, at=c(1:4), lab = expression(xi ~ rho ~ alpha ~ bar(V)), las=T)
或
axis(2, at=pretty(x), lab = paste0(expression(xi ~ rho ~ alpha ~ bar(V)), las=T))
但没有成功。任何人现在的伎俩?
请注意。我看到过这个问题:Adding greek character to axis title 但它侧重于标签,而不是y轴“值”。 另外,我尝试过类似Putting greek letters in column names的内容 没有成功。
答案 0 :(得分:0)
您只需将lab
中的axis
作为expression
s的向量传递。
axis(2, at=c(1:4), lab = c(expression(xi),
expression(rho), expression(alpha), expression(bar(V))), las=T)
然后您可以根据需要使用轴的设置。
答案 1 :(得分:0)
如果您向axis
提供names.arg
参数,则无需拨打barplot
来标记条形码:
barplot(data[1,], horiz = T, las=1, xlim = c(-0.04,0.04), xaxt='n', ylab='',
beside=T, col=c('springgreen'),
names.arg=c(expression(xi),expression(rho), expression(alpha), expression(bar(V))))