如何绘制以下条形图?

时间:2017-06-11 11:13:50

标签: r ggplot2

我想为下面的数据绘制条形图。

  year  fips  Emissions   
1 1999 06037 68.4060000  
2 2002 06037 78.0598486    
3 2005 06037 85.7657985  
4 2008 06037 85.1871200  
5 1999 24510  0.5600000  
6 2002 24510 10.5183944  
7 2005 24510 10.2240684  
8 2008 24510  0.4772056

此处fipsyear是因素。

我在ggplot2

中尝试了以下代码
g <- ggplot(df, aes(year, Emissions, fill=fips))
g + 
  geom_bar(stat = 'identity', position = position_dodge()) + 
  labs(title = "Comparative pollution levels in San Fransisco and Baltimore", 
       x = "Year", xlab = unique(df$year)) + 
  scale_color_manual(labels = c("San Fransisco", "Baltimore"), values = c("#999999", "#E69F00")) + 
  theme_bw() + 
  guides(color = guide_legend("Counties"))

这会产生以下情节:

enter image description here

尽管添加了代码,我也无法更改图例中的名称。

如何使用基础绘图系统绘制它?我能够使用ggplot2使用以下代码绘制它。

1 个答案:

答案 0 :(得分:1)

aes来电中,您使用了fill arg。因此,要编辑fill的行为,您可以使用scale_fill_manual代替scale_color_manual(这将编辑color中传递给aes arg的行为的行为})。

我假设使用guides的最后一行代码是为了编辑图例标题。在下面的代码中,我使用name中的scale_fill_manual编辑了标题。

library(ggplot2)
df <- read.table(text="  year  fips  Emissions   
                       1 1999 06037 68.4060000  
                       2 2002 06037 78.0598486    
                       3 2005 06037 85.7657985  
                       4 2008 06037 85.1871200  
                       5 1999 24510  0.5600000  
                       6 2002 24510 10.5183944  
                       7 2005 24510 10.2240684  
                       8 2008 24510  0.4772056", header=T)
df$year <- factor(df$year)
df$fips <- factor(df$fips)

g <- ggplot(df, aes(year, Emissions, fill=fips))
g + 
  geom_bar(stat = 'identity', position = position_dodge()) + 
  labs(title = "Comparative pollution levels in San Fransisco and Baltimore", 
       x = "Year", xlab = unique(df$year)) + 
  scale_fill_manual(name = "Counties",
                    labels = c("San Fransisco", "Baltimore"), 
                    values = c("#999999", "#E69F00")) + 
  theme_bw()

enter image description here