【问题标题】:Strange 'X' in front of every x-axis label (year)... How to remove?每个x轴标签(年份)前面的奇怪'X'......如何删除?
【发布时间】:2016-06-15 05:43:49
【问题描述】:

我有一个每年的 x 轴 1998-2014。如下图所示,每年的前面都有一个“X”

2

我怎样才能删除它?

我还希望每年都写在每个条形下方。并且红色和绿色部分中每个条的值可见...

我写了这段代码:

    d=read.delim("LW_Einkommen.csv", sep=";", dec=".", header=TRUE, row.names=1)
str(d)

da=data.matrix(d, rownames.force = NA)
da

barplot(da,
        main="ø Einkommen CH Landwirtschaftsbetriebe 1998-2014",
        xlab="Jahr",
        ylab="Einkommen pro Betrieb [CHF]",
        ylim=c(0, 100000),
        col=c("red","green"),
        cex.axis = 0.9, cex.lab = 0.9)

grid(col="black")

legend("bottomleft",
       c("Landwirtschaftliches Einkommen","Ausserlandwirtschaftliches Einkommen"),
       fill=c("red","green"))

【问题讨论】:

  • 如果您提供数据集的前几行,将会有很大帮助。
  • 标签来自数据集的列名。数字列名会自动附加一个 X。尝试使用 names.arg 参数到 barplot 来设置名称
  • 检查las 参数到par 以使标签垂直。

标签: r plot bar-chart


【解决方案1】:

感谢 R. Telford 对我的 3 个非常重要的贡献! 有了这个,这里还有更多的线程和一整天的修补,我几乎完成了。

其他可能性正在添加到read.delimcheck.name=F

d=read.delim("LW_Einkommen.csv", sep=";", dec=".", header=TRUE, row.names=F)

我的脚本中只有一个小错误(我标记了标签部分螺栓),导致堆叠条形图中的块标签顺序错误,如下图所示: wrong block-labeling

实际顺序从 98red 开始,穿过所有红色块,然后跳转到绿色块... 不过应该是从红到绿的一条条……

d=read.delim("LW_Einkommen.csv", sep=";", dec=".", header=TRUE, row.names=1)
str(d)

da=data.matrix(d, rownames.force = NA)
da

bp=barplot(da,
        main="ø Einkommen CH Landwirtschaftsbetriebe 1998-2014",
        xlab="Jahr",
        ylab="Einkommen pro Betrieb [CHF]",
        ylim=c(0, 100000),
        las=3,
        col=c("red","green"),
        cex.axis = 0.9, cex.lab = 1, cex.names=0.9,
        names.arg = expression("1998","1999","2000","2001","2002","2003","2004","2005","2006",
                               "2007","2008","2009","2010","2011","2012","2013","2014"))

**# Find the top y position of each block 
ypos <- apply(da, 2, cumsum)
# Move it downwards half the size of each block
ypos <- ypos - da/2
ypos <- t(ypos)
text(bp, ypos, da, cex=0.7)**

grid()

legend("topleft",
       c("Landwirtschaftliches Einkommen","Ausserlandwirtschaftliches Einkommen"),
       fill=c("red","green"),cex=0.9)

我从这里获取的标签模板:https://stackoverflow.com/a/3627269/6467646

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-08
    • 2013-12-29
    • 1970-01-01
    • 2023-02-24
    • 1970-01-01
    • 2015-12-25
    • 2020-07-08
    相关资源
    最近更新 更多