这个图来自Economisit,柱状图我会做,文字也会加,就是在不同的柱子上显示边框不知道怎么弄,大神给点建议,不胜感激!

ggplot的话,geom_col()做柱状图,color就是边框,fill是填充的颜色。
加边框可以再多加一层geom_col(),并改变

library(ggplot2)
library(dplyr)

df = mtcars
df$car = rownames(mtcars)

df.sort = df %>% 
  arrange(mpg)

df.sort %>% 
  ggplot(aes(x=car,y=mpg,fill=cyl))+
  geom_col()+
  
  ## here comes the border:
  geom_col(data= df.sort[c(2,4,6),], color="red", size=1)+
  geom_text(data= df.sort[c(2,4,6),], aes(label=hp))+
  
  scale_x_discrete(limits= df.sort$car) +
  theme_classic()+
  theme(axis.text.x = element_text(angle = 90, hjust = 1))+
  ggtitle("Miles per gallon")

<sup>Created on 2019-12-19 by the reprex package (v0.3.0)</sup>

    seeyou14 Base R:

    # df from tctcab
    df.o <- df[order(df[,1]), ]
    df.o$bd <- "NA"
    df.o$bd[c(2, 4, 6)] <- "red"
    barplot(df.o$mpg, border = df.o$bd, col = df.o$cyl)

      tctcab 大神,我再问一个问题,df.sort不是已经是排序过的数据了么,作图之后也应该是有序的,可是当我去掉

      tctcab scale_x_discrete(limits= df.sort$car) +

      之后图仍然是乱序,这是为什么呢?

        Liechi 加个图例:

        legend('topleft', legend = unique(df.o$cyl), fill = unique(df.o$cyl), title = 'cyl', border = NA, bty = 'n')

        已入选 TNT 擂台赛

          seeyou14

          离散向量【车名,国名】默认是按字母表顺序排列的,这里我用的小技巧就是用排序后的车名来设置x轴,达到排序效果

          tctcab 代码署名,开始我是这么想的,但是干起来工作量比较大。本例子还好,各部分作者比较清晰,然而更常见的情况是把很多人写的代码东一块西一块拼在一起。整理的琐碎工作,会降低我的积极性 😅

          目前,每个实例保留了原始出处的链接,并且在前言里加以声明,算是我找到的一个平衡点。

          当然,哪位有精力给代码加署名的,欢迎 PR。

            dapengde

            其实如果都是从本论坛来的话,我觉得可以拿flarum的api写个小函数,输入帖子和楼层后提取代码自动生成你的帖子

              tctcab 试试也无妨。然而书稿跟帖子有很大不同。核心代码是搬过去的不假,然而无论问题还是答案都是经过我重新加工润色的。

                dapengde
                footnote加句【以上代码由@xxx@xxxx实现,@dapengde 整理,原贴链接 xxxxx。

                我觉得要尽量专业的话可以参考SO站,所有so上代码都有cc by sa的licence,代码随便用但是得注明出处。虽然是小事但是我觉得对tnt长远考虑还是很有必要

                https://stackoverflow.com/help/licensing