如何使用ggplot2绘制超过50个离散的类别变量值?

时间:2017-02-21 07:00:15

标签: r ggplot2 facet

我的数据集如下:

level   Year  Priority   Avg_Effort_in_Hrs    Total_Effort_in_Hrs
A      2015   Medium            33.6                34  
B      2016   Low               34.6                67  
C      2014   High              45.6                78
D      2016   High              67.6                89
E      2016   Low               56.8                346
F      2015   Medium            10                  76
G      2015   High              23.6                88 

我想绘制这些数据,以按年份,级别和优先级查看avg_efforts_in_hrs和total_efforts_in_hrs。

我使用下面的代码分别绘制这两个。

问题在于,级别列中的离散值超过200 。当我绘制这些数据时,它不清晰可见,而且对于某些值,它没有指定任何形状。

###### Code ########

png(file="mygraphic_1.png",width=900,height=850)

ggplot(data=data, 
       aes(x=factor(Year), y=Avg_Effort_in_Hrs, 
           group=level,
           shape=level,
           color=Level)) + 
  #geom_line() + 
  geom_point(na.rm = TRUE,color="darkred", size=3) +
  scale_shape_manual(values=seq(0,48)) + ## because level 48 discrete values
  scale_x_discrete("Year") +
  scale_y_continuous("Avg_Effort_in_Hrs",breaks = seq(min(Avg_Effort_in_Hrs),max(Avg_Effort_in_Hrs),8)) + 
  facet_grid(.~Priority )

dev.off()

以下是Total_efforts_in_hrs

png(file="mygraphic_1.png",width=900,height=850)

ggplot(data=data, 
       aes(x=factor(Year), y=Avg_Effort_in_Hrs, 
           group=level,
           shape=level,
           color=Level)) + 
  #geom_line() + 
  geom_point(na.rm = TRUE,color="darkred", size=3) +
  scale_shape_manual(values=seq(0,48)) + ## because level has 48 discrete values
  scale_x_discrete("Year") +
  scale_y_continuous("Avg_Effort_in_Hrs",breaks = seq(min(Avg_Effort_in_Hrs),max(Avg_Effort_in_Hrs),8)) + 
  facet_grid(.~Priority )

dev.off()

有人可以告诉我如何解决这个问题并使我的情节更容易理解?是否有其他更好的方式根据我的要求进行绘制?

0 个答案:

没有答案