2017-06-14 17 views
0

我正在用ggplot繪製一個斜坡圖,但標籤聚集在一起,並且由於兩個軸的縮放比例而不能正確顯示。 有什麼想法?用ggplot調整斜坡圖中的步長R

我的代碼和圖形Is there any way to adjust step scale?

非常感謝!

#Read file as numeric data 
betterlife<-read.csv("betterlife.csv",skip=4,stringsAsFactors = F) 
num_data <- data.frame(data.matrix(betterlife)) 
numeric_columns <- sapply(num_data,function(x){mean(as.numeric(is.na(x)))<0.5}) 
final_data <- data.frame(num_data[,numeric_columns], 
betterlife[,!numeric_columns]) 

## rescale selected columns data frame 
final_data <- data.frame(lapply(final_data[,c(3,4,5,6,7,10,11)], function(x) scale(x, center = FALSE, scale = max(x, na.rm = TRUE)/100))) 

## Add country names as indicator 
final_data["INDICATOR"] <- NA 
final_data$INDICATOR <- betterlife$INDICATOR 
employment.data <- final_data[5:30,] 
indicator <- employment.data$INDICATOR 
## Melt data to draw graph 
employment.melt <- melt(employment.data) 


#plot 
sg = ggplot(employment.melt, aes(factor(variable), value, 
       group = indicator, 
       colour = indicator, 
       label = indicator)) + 
    theme(legend.position = "none", 
    axis.text.x = element_text(size=5), 
    axis.text.y=element_blank(), 
    axis.title.x=element_blank(), 
    axis.title.y=element_blank(), 
    axis.ticks=element_blank(), 
    axis.line=element_blank(), 
    panel.grid.major.x = element_line("black", size = 0.1), 
    panel.grid.major.y = element_blank(), 
    panel.grid.minor.y = element_blank(), 
    panel.background = element_blank()) 
# plot the right-most labels 

sg1 = sg + geom_line(size=0.15) + 
    geom_text(data = subset(employment.melt, variable == "Life.expectancy"), 
     aes(x = factor(variable), label=sprintf(" %2f %s",value,INDICATOR)), size = 1.75, hjust = 0) 

# plot the left-most labels 

sg1 = sg1 + geom_text(data = subset(employment.melt, variable == "Employment.rate"), 
       aes(x = factor(variable), label=sprintf("%s %2f ",INDICATOR,value)), size = 1.75, hjust = 1) 
sg1 
+0

你是什麼意思「調整步長」? PS:歡迎來到這個網站! – mzuba

+0

假設我想將標籤添加到99和99.5的值,我想設置兩個標籤之間的最小距離,以便它們不重疊(如圖所示)。告訴我,如果這是有道理的。謝謝! –

回答

0

你有沒有試圖建立一個規模化,例如,X(但我認爲你應該y的做到這一點)

scale_x_continuous(breaks = seq(0, 100, 5)) 

其中0 - 100的範圍內,5步驟尺寸。您需要根據圖表調整這些值。 Source