ggplot2-局部整體型圖表

ggplot2-局部整體型圖表

沈益

8/18/2019

餅圖

library(RColorBrewer)  
library(dplyr)
library(graphics)

#-------------------------圖7-1-1 餅圖(a)------------------------------------------
df <- data.frame(value = c(24.20,30.90,12.50,12.30,8.10,12.10), 
                 group = c('LVS','SJM','MCE','Galaxy','MGM','Wynn'))
df <-arrange(df,value)

labs <- paste0(df$group," \n(", round(df$value/sum(df$value)*100,2), "%)")

pie(df$value,labels=labs, init.angle=90,col =  brewer.pal(nrow(df), "Reds"),
    border="black")

df <- data.frame(value = c(24.20,75.90,12.50,12.30,8.10,12.10), 
                 group = c('LVS','SJM','MCE','Galaxy','MGM','Wynn'))
df <-arrange(df,desc(value))
df$color<-rev(brewer.pal(nrow(df), "Blues"))#Oranges

df<-df[c(2:nrow(df),1),]
labs <- paste0(df$group," \n(", round(df$value/sum(df$value)*100,2), "%)")

pie(df$value,labels=labs, init.angle=90,col = df$color,
    border="black")

n<-6
gg_color_hue <- function(n) {hues = seq(15, 375, length = n + 1); hcl(h = hues, l = 65, c = 100)[1:n]} 
pie(df$value,labels=labs, init.angle=90,col =gg_color_hue(n),
    border="black")

pie(df$value,labels=labs, init.angle=90,col ="#3182BD",
    border="black")

df <- data.frame(value = c(24.20,75.90,12.50,12.30,8.10,12.10), 
                 group = c('LVS','SJM','MCE','Galaxy','MGM','Wynn'))
df <-arrange(df,value)

labs <- paste0(df$group," \n(", round(df$value/sum(df$value)*100,2), "%)")

pie(df$value,labels=labs, init.angle=90,col =  brewer.pal(nrow(df), "Reds"),
    border="black")

df <- data.frame(value = c(24.20,30.90,12.50,12.30,8.10,12.10), 
                 group = c('LVS','SJM','MCE','Galaxy','MGM','Wynn'))
df <-arrange(df,desc(value))
df$color<-rev(brewer.pal(nrow(df), "Oranges"))

df<-df[c(2:nrow(df),1),]

labs <- paste0(df$group," \n(", round(df$value/sum(df$value)*100,2), "%)")

pie(df$value,labels=labs, init.angle=90,col = df$color,
    border="black")

散點複合餅圖

library(ggplot2)
library(scatterpie)
library(RColorBrewer)

crime <- read.csv("配套資源/第7章 局部整體型圖表/crimeRatesByState2005.tsv",header = TRUE, sep = "\t", stringsAsFactors = F)
radius <- sqrt(crime$population / pi)
Max_radius<-max(radius)
Bubble_Scale<-0.1
crime$radius <- Bubble_Scale * radius/Max_radius

mydata<-crime[,c(2,4,3,5:8)]  #數據集構造
Col_Mean<-apply(mydata,2,mean)
Col_Sort<-sort(Col_Mean,index.return=TRUE,decreasing = TRUE)
mydata<-mydata[,Col_Sort$ix]
x<-(mydata$murder-min(mydata$murder))/(max(mydata$murder)-min(mydata$murder))+0.00001
y<-(mydata$Robbery-min(mydata$Robbery))/(max(mydata$Robbery)-min(mydata$Robbery))+0.00001

xlabel<-seq(0,10,2)
xbreak<-(xlabel-min(mydata$murder))/(max(mydata$murder)-min(mydata$murder))+0.00001
ylabel<-seq(0,260,50)
ybreak<-(ylabel-min(mydata$Robbery))/(max(mydata$Robbery)-min(mydata$Robbery))+0.00001

mydata2<-data.frame(x,y,radius=crime$radius)
mydata2<-cbind(mydata2,mydata)

Legnd_label<-colnames(mydata2)[4:10]
colnames(mydata2)[4:10]<-LETTERS[1:7]

#---------------------------------------圖7-1-3 散點複合餅圖系列(a)-------------------------------------------------
ggplot() + 
  geom_scatterpie(aes(x=x, y=y,r=0.05), data=mydata2, cols=colnames(mydata2)[4:10],alpha=0.9,size=0.1) +
  scale_fill_manual(values=colorRampPalette(brewer.pal(7, "Set2"))(7),labels=Legnd_label)+
  #geom_scatterpie_legend(mydata2$radius, x=0.1, y=0.95, n=5,labeller=function(x) round((x* Max_radius/ Bubble_Scale)^2*pi))+
  #geom_scatterpie_legend(mydata2$radius, x=0.009758116, y=0.090868067, n=4,labeller=function(x) round((x* Max_radius/ Bubble_Scale)^2*pi))+
  scale_x_continuous(breaks=xbreak, labels=xlabel)+
  scale_y_continuous(breaks=ybreak, labels=ylabel)+
  xlab("murder")+
  ylab("Robbery")+
  coord_fixed()+
  theme(
    axis.title=element_text(size=15,face="plain",color="black"),
    axis.text = element_text(size=13,face="plain",color="black"),
    legend.title=element_text(size=15,face="plain",color="black"),
    legend.text = element_text(size=14,face="plain",color="black")
  )

ggplot() + 
  geom_scatterpie(aes(x=x, y=y,r=radius), data=mydata2, cols=colnames(mydata2)[4:10],alpha=0.9,size=0.25) +
  scale_fill_manual(values=colorRampPalette(brewer.pal(7, "Set2"))(7),labels=Legnd_label)+
  geom_scatterpie_legend(mydata2$radius, x=0.1, y=0.95, n=5,
                         labeller=function(x) round((x* Max_radius/ Bubble_Scale)^2*pi))+
  #geom_scatterpie_legend(mydata2$radius, x=0.009758116, y=0.090868067, n=4,labeller=function(x) round((x* Max_radius/ Bubble_Scale)^2*pi))+
  scale_x_continuous(breaks=xbreak, labels=xlabel)+
  scale_y_continuous(breaks=ybreak, labels=ylabel)+
  xlab("murder")+
  ylab("Robbery")+
  coord_fixed()+
  theme(
    axis.title=element_text(size=15,face="plain",color="black"),
    axis.text = element_text(size=13,face="plain",color="black"),
    legend.title=element_text(size=15,face="plain",color="black"),
    legend.text = element_text(size=14,face="plain",color="black")
  )

冰柱圖

library(ggraph)
library(igraph)
library(RColorBrewer) 

colormap <- colorRampPalette(rev(brewer.pal(5,'Reds')))(5)


graph <- graph_from_data_frame(flare$edges, vertices = flare$vertices)


#---------------------------------------圖7-2-2 冰柱圖-------------------------------------------------
ggraph(graph, layout ='partition') + 
  geom_node_tile(aes(fill = as.factor(depth)), size = 0.25)+
  geom_node_text( aes(label=shortName,filter =(depth==0)),size=6, angle=0,colour="white") +
  geom_node_text( aes(label=shortName,filter =(depth==1 )),size=3.5, angle=90,colour="white") +
  geom_node_text( aes(label=shortName,filter =(depth<=3 & depth>1 &  size <10)),size=1.5, angle=90) +
  scale_fill_manual(values= colormap)+
  #scale_fill_viridis()+
  scale_y_reverse()+
  theme_void()+
  theme(legend.position = "none")

旭日圖

ggraph(graph, layout ='partition', circular = TRUE) + 
  geom_node_arc_bar(aes(fill = as.factor(depth)), size = 0.25)+
  geom_node_text( aes(label=shortName,filter =(depth==0)),size=6, angle=0,colour="white") +
  geom_node_text( aes(label=shortName,filter =(depth==1 )),size=3.5, angle=0,colour="white") +
  geom_node_text( aes(label=shortName,filter =(depth<=3 & depth>1 &  size <10)),size=2, angle=0) +
  coord_fixed()+
  scale_fill_manual(values= colormap)+
  #scale_fill_viridis(discrete = TRUE)+
  theme_void()+
  theme(legend.position = "none")

華夫餅圖

library(ggplot2)
library(RColorBrewer)  

library(reshape2)
nrows <- 10
categ_table <- round(table(mpg$class ) * ((nrows*nrows)/(length(mpg$class))))
sort_table<-sort(categ_table,index.return=TRUE,decreasing = FALSE)
Order<-sort(as.data.frame(categ_table)$Freq,index.return=TRUE,decreasing = FALSE)

df <- expand.grid(y = 1:nrows, x = 1:nrows)
df$category<-factor(rep(names(sort_table),sort_table), levels=names(sort_table))


Color<-brewer.pal(length(sort_table), "Set2")

ggplot(df, aes(x = y, y = x, fill = category)) + 
  geom_tile(color = "white", size = 0.25) +
  #geom_point(color = "black",shape=21,size=6) + 
  coord_fixed(ratio = 1)+
  scale_x_continuous(trans = 'reverse') +#expand = c(0, 0),
  scale_y_continuous(trans = 'reverse') +#expand = c(0, 0),
  scale_fill_manual(name = "Category", 
                    #labels = names(sort_table),
                    values = Color)+
  theme(#panel.border = element_rect(fill=NA,size = 2),
    panel.background  = element_blank(),
    plot.title = element_text(size = rel(1.2)),
    #axis.text = element_blank(),
    #axis.title = element_blank(),
    #axis.ticks = element_blank(),
    # legend.title = element_blank(),
    legend.position = "right")

library(ggforce)
ggplot(df, aes(x0 = y, y0 = x, fill = category,r=0.5)) + 
  geom_circle(color = "black", size = 0.25) +
  #geom_point(color = "black",shape=21,size=6) + 
  coord_fixed(ratio = 1)+
  scale_x_continuous(trans = 'reverse') +#expand = c(0, 0),
  scale_y_continuous(trans = 'reverse') +#expand = c(0, 0),
  scale_fill_manual(name = "Category", 
                    #labels = names(sort_table),
                    values = Color)+
  theme(#panel.border = element_rect(fill=NA,size = 2),
    panel.background  = element_blank(),
    plot.title = element_text(size = rel(1.2)),
    #axis.text = element_blank(),
    #axis.title = element_blank(),
    #axis.ticks = element_blank(),
    # legend.title = element_blank(),
    legend.position = "right")

library(dplyr)
nrows <- 10
ndeep <- 10
unit<-100
df <- expand.grid(y = 1:nrows, x = 1:nrows)

categ_table <- as.data.frame(table(mpg$class) * (nrows*nrows))
colnames(categ_table)<-c("names","vals")
categ_table<-arrange(categ_table,desc(vals))
categ_table$vals<-categ_table$vals /unit


tb4waffles <- expand.grid(y = 1:ndeep,x = seq_len(ceiling(sum(categ_table$vals) / ndeep)))
regionvec <- as.character(rep(categ_table$names, categ_table$vals))
tb4waffles<-tb4waffles[1:length(regionvec),]


tb4waffles$names <- factor(regionvec,levels=categ_table$names)

Color<-brewer.pal(nrow(categ_table), "Set2")


ggplot(tb4waffles, aes(x = x, y = y, fill = names)) + 
  #geom_tile(color = "white") + # 
  geom_point(color = "black",shape=21,size=5) + # 
  scale_fill_manual(name = "Category", 
                    values = Color)+
  xlab("1 square = 100")+
  ylab("")+
  coord_fixed(ratio = 1)+
  theme(#panel.border = element_rect(fill=NA,size = 2),
         panel.background  = element_blank(),
        plot.title = element_text(size = rel(1.2)),
        #axis.text = element_blank(),
        #axis.title = element_blank(),
        #axis.ticks = element_blank(),
        # legend.title = element_blank(),
        legend.position = "right")

library(ggforce)

ggplot(tb4waffles, aes(x0 = x, y0 = y, fill = names,r=0.5)) + 
  #geom_tile(color = "white") + # 
  geom_circle(color = "black",size=0.25) + # 
  scale_fill_manual(name = "Category", 
                    values = Color)+
  xlab("1 square = 100")+
  ylab("")+
  coord_fixed(ratio = 1)+
  theme(#panel.border = element_rect(fill=NA,size = 2),
    panel.background  = element_blank(),
    plot.title = element_text(size = rel(1.2)),
    #axis.text = element_blank(),
    #axis.title = element_blank(),
    #axis.ticks = element_blank(),
    # legend.title = element_blank(),
    legend.position = "right")

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章