2017-02-17 63 views
0

我想为几个变量获取一些基本的条形图。 运行少量代码时,我会根据需要获取输出图。但对于某些人来说,输出不正确,图形是单色(灰色)。 无法弄清楚它是什么错误。我附上了第二张图的输出。 请让我知道我要去哪里错了。我对R编程非常新颖。R图中没有变色

的数据集MD loooks这样

State Year  Desc  Amt 
TN  2014  Won  158 
OK  2015  Lost 175 
WA  2013  Won  145 
OG  2015  Lost 174 
IL  2014  Won  165 

library(ggplot2) 

#Metric for AB */ 
AB <- ddply(MD,c("State","Year", "Desc"), 
      function (MD){data.frame( Total_Lo=nrow(MD), Total_Amt=sum(MD$Lo_Amt), Avg_Amt=mean(MD$Lo_Amt))}) 


#Loan Amount metric for States 
A <-ddply(AB,c("State", "Desc"), 
      function(AB){data.frame(Number_A=sum(AB$Total_Lo),Total_Amt_A=sum(AB$Total_Amt), Avg_Amt_A=sum(AB$Total_Amt)/sum(AB$Total_Lo))}) 

#Loan Amount Metric for Years 
B <-ddply(AB,c("Year" , "Desc"), 
      function(AB){data.frame(Number_B=sum(AB$Total_Lo),Total_B=sum(AB$Total_Amt),Avg_B=sum(AB$Total_Amt)/sum(AB$Total_Lo))}) 

#Getting proper output 
qplot(State, data = A, 
     fill=State, geom = "bar", 
     weight=Total_Amt_,ylab="Total Amount", 
     main = "Total Amount for all ") 

#Getting output but no color 
qplot(Year, data = B, fill=_Year, 
     geom = "bar",weight=Number_B,ylab="Total Count ", 
     main = " Number by Year") 

#No proper output 
qplot(State, data = AB, fill=Year, 
     geom = "bar",weight=Total_Number_Lo, 
     ylab="Total Number", main = "Number each state ") 
+0

不可重复,对象'MD'丢失。使用'dput(MD)'并粘贴结果 – GGamba

+0

我仍然无法重现最后的情节,我不得不修复一些代码。阅读关于在R中制作[伟大的,可重现的示例](http://stackoverflow.com/a/5963610/1261281) – GGamba

回答

0

你必须给到fill审美的引用,然后通过scale_fill_manual指定颜色给它:

qplot(Year, data = B, fill='FILL_AES', 
     geom = "bar",weight=Number_B,ylab="Total Count ", 
     main = " Number by Year") + 
    scale_fill_manual(values = c('FILL_AES' = 'blue')) 

注意不打算创建完全成熟的图,它只是用于快速原型设计和测试。如果您需要自定义您的图表,请使用并学习ggplot

ggplot(B, aes(x = Year, y = Number_B)) + 
    geom_bar(stat = 'identity', fill = 'blue') + 
    ggtitle('Number by year')