Barplot:R

时间:2016-05-06 11:15:33

标签: r unicode bar-chart

这是关于条形图的另一个问题的后续问题: Tornado plot in R

我意识到关于在y轴上获取希腊字母的问题需要作为一个自己的问题。

问题是: 我有以下条形图,需要将y轴更改为相应的希腊字母(以及带有条形的V)。

enter image description here

我使用以下代码:

# 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的内容 没有成功。

2 个答案:

答案 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))))
相关问题