【问题标题】:Labeling a dotchart标记点图
【发布时间】:2017-07-22 02:14:29
【问题描述】:

鉴于以下示例和图表,如何能够在每个点旁边绘制 x 轴的确切值?

x <- mtcars[order(mtcars$mpg),] # sort by mpg
x$cyl <- factor(x$cyl) # it must be a factor
x$color[x$cyl==4] <- "red"
x$color[x$cyl==6] <- "blue"
x$color[x$cyl==8] <- "darkgreen"    
dotchart(x$mpg,labels=row.names(x),cex=.7,groups= x$cyl,
 main="Gas Milage for Car Models\ngrouped by cylinder",
   xlab="Miles Per Gallon", gcolor="black", color=x$color)

我尝试修改标签参数,但它只调整了 y 轴标签名称。

【问题讨论】:

  • 尝试修改类似text(x$mpg, labels= x$mpg, cex=0.6)

标签: r


【解决方案1】:

您需要先按类别排序,然后再按 x。然后,您可以按照 Ricardo 的建议使用 text,考虑类别之间的中断。

x <- mtcars[order(-mtcars$cyl, mtcars$mpg),]
# sort by category, then by position within category

# As above
x$cyl <- factor(x$cyl) # it must be a factor
x$color[x$cyl==4] <- "red"
x$color[x$cyl==6] <- "blue"
x$color[x$cyl==8] <- "darkgreen"    
dotchart(x$mpg,labels=row.names(x),cex=.7,groups= x$cyl,
         main="Gas Milage for Car Models\ngrouped by cylinder",
         xlab="Miles Per Gallon", gcolor="black", color=x$color)

# Adding text
text(x = x$mpg,
     y = 1:nrow(x) + ifelse(x$cyl == "6", 2, ifelse(x$cyl == "4", 4, 0)),
     labels= x$mpg,
     cex = 0.5,
     pos = 4)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-17
    • 2019-09-30
    • 2012-05-16
    • 2015-07-06
    • 2013-12-10
    • 2019-03-18
    • 2019-07-20
    • 2013-01-27
    相关资源
    最近更新 更多