【问题标题】:R: Two axis chart adjustmentsR:两轴图调整
【发布时间】:2013-06-27 14:36:25
【问题描述】:

我正在尝试用两个轴绘制一个聊天,这是代码,附件是情节,

我必须对其进行两次调整。

  • 我想用点绘制一条线,点应该在条的中间
  • 调整右侧轴(即轴(4))刻度线应与左侧轴(即轴(2))对齐

代码:

Region=c("North","South","East","West")
Sales=sample(500:1000,4)
Change=sample(1:10,4)/10
names(Sales)=Region
names(Change)=Region
barplot(Sales,ylim=c(0,1000))
par(new=T)
plot(Change,type="b",axes=F,ylim=c(0,1))
axis(4)
box()

问候,

西瓦吉

【问题讨论】:

    标签: r plot bar-chart multiple-axes


    【解决方案1】:

    首先,将您的条形图保存为某个对象。所以你会得到中间点的坐标。然后要添加行,您还可以使用函数lines() 并将Change 值乘以1000。 然后为axis()函数提供at=的值和labels=at=相同,只是除以1000。

    x<-barplot(Sales,ylim=c(0,1000))
    lines(x,Change*1000,type="b")
    axis(4,at=seq(0,800,200),labels=seq(0,800,200)/1000)
    

    【讨论】:

      【解决方案2】:

      您需要在第二个图中设置相同的 x 轴,您可以从 par("usr") 获得此信息。 xaxs="i" 是准确设置xlim,默认 R 增加 xlim 一点,使其更好看。

      par(mar=c(5,5,2,5)) # change margins
      x = barplot(Sales, ylim=c(0,1000)) # barplot, keep middle points of bars
      mtext("Sales", 2, line=3) # first y-axis label
      xlim = par("usr")[1:2] # get xlim from plot
      par(new=TRUE) 
      plot.new() # new plot
      plot.window(xlim=xlim, ylim=c(0,1), xaxs="i", yaxs="i") # new plot area, same xlim
      lines(x,Change,type="b") # the lines in the middle points
      axis(4) # secondary y-axis
      mtext("Change", 4, line=3) # secondary y-axis label
      box()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-07-09
        • 2018-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多