分组柱状图

fill指定分组变量,每个组用不同的颜色填充。

library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.1.2
library(gcookbook)
cabbage_exp <- cabbage_exp
ggplot(cabbage_exp,aes(Date,Weight, fill=Cultivar))+
  geom_bar(position = "dodge",stat = "identity",color="black")

修改颜色

upc <- subset(uspopchange,rank(Change)>40)
upc
##             State Abb Region Change
## 3         Arizona  AZ   West   24.6
## 6        Colorado  CO   West   16.9
## 10        Florida  FL  South   17.6
## 11        Georgia  GA  South   18.3
## 13          Idaho  ID   West   21.1
## 29         Nevada  NV   West   35.1
## 34 North Carolina  NC  South   18.5
## 41 South Carolina  SC  South   15.3
## 44          Texas  TX  South   20.6
## 45           Utah  UT   West   23.8
ggplot(upc, aes(x=Abb,y=Change, fill=Region))+geom_bar(stat = "identity")

## reorder()将条形按其高度进行排序

#reorder接受两个值-两个参数,第一个是要排的数据(排序发生在谁身上),第二个是根据什么来排。
#xlab()是加一个x轴的标签。
ggplot(upc,aes(x=reorder(Abb,Change),y=Change,fill=Region))+
  geom_bar(stat="identity",color="black")+scale_fill_manual(values=c("#669933","#FFCC66"))+
  xlab("State")

正负两极不同着色

#用的是climate数据集中的一个子集
csub <- subset(climate,Source=="Berkeley" & Year>=1900)
#用判断,返回的是逻辑值组成的向量,赋值给新的列变量,csub会多一列
csub$pos <- csub$Anomaly10y>=0
csub
##       Source Year Anomaly1y Anomaly5y Anomaly10y Unc10y   pos
## 101 Berkeley 1900        NA        NA     -0.171  0.108 FALSE
## 102 Berkeley 1901        NA        NA     -0.162  0.109 FALSE
## 103 Berkeley 1902        NA        NA     -0.177  0.108 FALSE
## 104 Berkeley 1903        NA        NA     -0.199  0.104 FALSE
## 105 Berkeley 1904        NA        NA     -0.223  0.105 FALSE
## 106 Berkeley 1905        NA        NA     -0.241  0.107 FALSE
## 107 Berkeley 1906        NA        NA     -0.294  0.106 FALSE
## 108 Berkeley 1907        NA        NA     -0.312  0.105 FALSE
## 109 Berkeley 1908        NA        NA     -0.328  0.103 FALSE
## 110 Berkeley 1909        NA        NA     -0.281  0.101 FALSE
## 111 Berkeley 1910        NA        NA     -0.247  0.099 FALSE
## 112 Berkeley 1911        NA        NA     -0.243  0.097 FALSE
## 113 Berkeley 1912        NA        NA     -0.257  0.100 FALSE
## 114 Berkeley 1913        NA        NA     -0.268  0.100 FALSE
## 115 Berkeley 1914        NA        NA     -0.257  0.097 FALSE
## 116 Berkeley 1915        NA        NA     -0.249  0.095 FALSE
## 117 Berkeley 1916        NA        NA     -0.214  0.096 FALSE
## 118 Berkeley 1917        NA        NA     -0.201  0.096 FALSE
## 119 Berkeley 1918        NA        NA     -0.176  0.096 FALSE
## 120 Berkeley 1919        NA        NA     -0.182  0.097 FALSE
## 121 Berkeley 1920        NA        NA     -0.193  0.097 FALSE
## 122 Berkeley 1921        NA        NA     -0.167  0.098 FALSE
## 123 Berkeley 1922        NA        NA     -0.128  0.096 FALSE
## 124 Berkeley 1923        NA        NA     -0.075  0.097 FALSE
## 125 Berkeley 1924        NA        NA     -0.064  0.098 FALSE
## 126 Berkeley 1925        NA        NA     -0.065  0.100 FALSE
## 127 Berkeley 1926        NA        NA     -0.050  0.100 FALSE
## 128 Berkeley 1927        NA        NA     -0.020  0.099 FALSE
## 129 Berkeley 1928        NA        NA     -0.018  0.099 FALSE
## 130 Berkeley 1929        NA        NA     -0.026  0.100 FALSE
## 131 Berkeley 1930        NA        NA     -0.014  0.101 FALSE
## 132 Berkeley 1931        NA        NA     -0.047  0.098 FALSE
## 133 Berkeley 1932        NA        NA     -0.035  0.096 FALSE
## 134 Berkeley 1933        NA        NA     -0.017  0.093 FALSE
## 135 Berkeley 1934        NA        NA      0.020  0.092  TRUE
## 136 Berkeley 1935        NA        NA      0.053  0.089  TRUE
## 137 Berkeley 1936        NA        NA      0.063  0.085  TRUE
## 138 Berkeley 1937        NA        NA      0.048  0.081  TRUE
## 139 Berkeley 1938        NA        NA      0.073  0.079  TRUE
## 140 Berkeley 1939        NA        NA      0.113  0.076  TRUE
## 141 Berkeley 1940        NA        NA      0.113  0.072  TRUE
## 142 Berkeley 1941        NA        NA      0.134  0.071  TRUE
## 143 Berkeley 1942        NA        NA      0.134  0.069  TRUE
## 144 Berkeley 1943        NA        NA      0.127  0.070  TRUE
## 145 Berkeley 1944        NA        NA      0.111  0.068  TRUE
## 146 Berkeley 1945        NA        NA      0.072  0.066  TRUE
## 147 Berkeley 1946        NA        NA      0.035  0.066  TRUE
## 148 Berkeley 1947        NA        NA      0.042  0.064  TRUE
## 149 Berkeley 1948        NA        NA      0.045  0.063  TRUE
## 150 Berkeley 1949        NA        NA      0.013  0.062  TRUE
## 151 Berkeley 1950        NA        NA      0.010  0.058  TRUE
## 152 Berkeley 1951        NA        NA     -0.017  0.054 FALSE
## 153 Berkeley 1952        NA        NA     -0.040  0.047 FALSE
## 154 Berkeley 1953        NA        NA     -0.040  0.043 FALSE
## 155 Berkeley 1954        NA        NA     -0.032  0.038 FALSE
## 156 Berkeley 1955        NA        NA     -0.022  0.035 FALSE
## 157 Berkeley 1956        NA        NA      0.012  0.031  TRUE
## 158 Berkeley 1957        NA        NA      0.007  0.028  TRUE
## 159 Berkeley 1958        NA        NA      0.002  0.027  TRUE
## 160 Berkeley 1959        NA        NA      0.002  0.026  TRUE
## 161 Berkeley 1960        NA        NA     -0.019  0.026 FALSE
## 162 Berkeley 1961        NA        NA     -0.001  0.021 FALSE
## 163 Berkeley 1962        NA        NA      0.017  0.018  TRUE
## 164 Berkeley 1963        NA        NA      0.004  0.016  TRUE
## 165 Berkeley 1964        NA        NA     -0.028  0.018 FALSE
## 166 Berkeley 1965        NA        NA     -0.006  0.017 FALSE
## 167 Berkeley 1966        NA        NA     -0.024  0.017 FALSE
## 168 Berkeley 1967        NA        NA     -0.041  0.019 FALSE
## 169 Berkeley 1968        NA        NA     -0.025  0.020 FALSE
## 170 Berkeley 1969        NA        NA     -0.019  0.024 FALSE
## 171 Berkeley 1970        NA        NA      0.010  0.026  TRUE
## 172 Berkeley 1971        NA        NA      0.007  0.022  TRUE
## 173 Berkeley 1972        NA        NA      0.015  0.015  TRUE
## 174 Berkeley 1973        NA        NA      0.028  0.012  TRUE
## 175 Berkeley 1974        NA        NA      0.049  0.014  TRUE
## 176 Berkeley 1975        NA        NA      0.068  0.012  TRUE
## 177 Berkeley 1976        NA        NA      0.128  0.011  TRUE
## 178 Berkeley 1977        NA        NA      0.158  0.012  TRUE
## 179 Berkeley 1978        NA        NA      0.167  0.013  TRUE
## 180 Berkeley 1979        NA        NA      0.193  0.012  TRUE
## 181 Berkeley 1980        NA        NA      0.186  0.016  TRUE
## 182 Berkeley 1981        NA        NA      0.217  0.016  TRUE
## 183 Berkeley 1982        NA        NA      0.235  0.014  TRUE
## 184 Berkeley 1983        NA        NA      0.270  0.014  TRUE
## 185 Berkeley 1984        NA        NA      0.318  0.014  TRUE
## 186 Berkeley 1985        NA        NA      0.344  0.013  TRUE
## 187 Berkeley 1986        NA        NA      0.352  0.012  TRUE
## 188 Berkeley 1987        NA        NA      0.380  0.011  TRUE
## 189 Berkeley 1988        NA        NA      0.370  0.013  TRUE
## 190 Berkeley 1989        NA        NA      0.366  0.017  TRUE
## 191 Berkeley 1990        NA        NA      0.433  0.019  TRUE
## 192 Berkeley 1991        NA        NA      0.467  0.018  TRUE
## 193 Berkeley 1992        NA        NA      0.496  0.017  TRUE
## 194 Berkeley 1993        NA        NA      0.526  0.019  TRUE
## 195 Berkeley 1994        NA        NA      0.554  0.020  TRUE
## 196 Berkeley 1995        NA        NA      0.563  0.019  TRUE
## 197 Berkeley 1996        NA        NA      0.565  0.022  TRUE
## 198 Berkeley 1997        NA        NA      0.618  0.022  TRUE
## 199 Berkeley 1998        NA        NA      0.680  0.023  TRUE
## 200 Berkeley 1999        NA        NA      0.734  0.025  TRUE
## 201 Berkeley 2000        NA        NA      0.748  0.026  TRUE
## 202 Berkeley 2001        NA        NA      0.793  0.027  TRUE
## 203 Berkeley 2002        NA        NA      0.856  0.028  TRUE
## 204 Berkeley 2003        NA        NA      0.869  0.028  TRUE
## 205 Berkeley 2004        NA        NA      0.884  0.029  TRUE
#把新列pos作为分类变量,就会按正数和负数填充成不同颜色。
ggplot(csub,aes(x=Year,y=Anomaly10y,fill=pos))+
  geom_bar(stat="identity",position = "identity")

#用scale_fill_manual()修改颜色,guide="none"是指参数去掉图例
ggplot(csub,aes(x=Year,y=Anomaly10y,fill=pos))+geom_bar(stat="identity",position="identity",color="black",size=0.25)+scale_fill_manual(values = c("#CCEEFF","#FFDDDD"),guide="none")