2017-05-08 48 views
0

我在如何在gglotlot中定位主標題和圖例時遇到問題。我希望我的主標題位於圖形頂部並左對齊。我也想我的傳說是在圖形ggplotly上的主標題和legend.position問題

這裏的底部中心是我的代碼

library(ggplot2) 
library(dplyr) 
library(tidyr) 
library(plotly) 

Month_Names <- c("2010-11","2010-12", 
      "2011-01","2011-02","2011-03","2011-04","2011-05","2011-06","2011-07","2011-08","2011-09","2011-10","2011-11","2011-12", 
      "2012-01","2012-02","2012-03","2012-04","2012-05","2012-06","2012-07","2012-08","2012-09","2012-10","2012-11","2012-12", 
      "2013-01","2013-02","2013-03","2013-04","2013-05","2013-06","2013-07","2013-08","2013-09","2013-10","2013-11","2013-12", 
      "2014-01","2014-02","2014-03","2014-04","2014-05","2014-06","2014-07","2014-08","2014-09","2014-10","2014-11","2014-12", 
      "2015-01","2015-02","2015-03","2015-04","2015-05","2015-06","2015-07","2015-08","2015-09","2015-10","2015-11","2015-12", 
      "2016-01","2016-02","2016-03","2016-04","2016-05","2016-06","2016-07","2016-08","2016-09","2016-10","2016-11","2016-12", 
      "2017-01") 
Actual_volume <- c(54447,57156, 
       52033,49547,58718,53109,56488,60095,54683,60863,56692,55283,55504,56633, 
       53267,52587,54680,55569,60013,56985,59709,61281,54188,59832,56489,55819, 
       59295,52692,56663,59698,61232,57694,63111,60473,58984,64050,54957,63238, 
       59460,54430,58901,61088,60496,62984,66895,62720,65591,67815,58289,72002, 
       61054,60329,69283,68002,63196,72267,71058,69539,71379,70925,68704,76956, 
       65863,70494,77348,70214,74770,77480,69721,83034,76761,77927,79768,81836, 
       75381) 

df_data <- data.frame(Month_Names, Actual_volume) 

trendDateRange1 <- c("2010-11-01", "2017-01-31") 
trendDateRange2 <- c("2012-01-01", "2012-12-31") 
trendDateRange3 <- c("2013-01-01", "2013-12-31") 
numoftrends <- 3 

trends <- data_frame(Start = c("2010-11", "2012-01", "2013-01"), 
       End = c("2017-01", "2012-12", "2013-12")) 
combined_data <- df_data %>% 
       crossing(trends) %>% 
       mutate(Month_Names = as.character(Month_Names), 
TrendName = paste(Start, End, sep = "-")) %>% 
filter(Month_Names >= Start, 
    Month_Names <= End) 


p <- ggplot(combined_data, aes(Month_Names, y = Actual_volume, 
         group = TrendName, 
         color = TrendName)) + 
    geom_line() + 
    labs(x=" ",y=" ") + 
    labs(title = "New plot title") + 
    theme(plot.title = element_text(family = "Trebuchet MS", color="blue", 
         size=18, 
           margin = margin(10, 0, 10, 0)), 
    legend.position = "bottom", 
    legend.title = element_blank(), 
    axis.text.x = element_text(angle = 45, hjust = 1) 
) 

print(ggplotly(p)) 

回答

2

我沒有找到標題問題的任何解決方案。看看這是否會幫助你關於這個傳說。

p <- ggplot(combined_data, aes(Month_Names, y = Actual_volume, 
          group = TrendName, 
          color = TrendName)) + 
    geom_line() + 
    labs(x=" ",y=" ") + 
    labs(title = "New plot title") + 
    theme(plot.title = element_text(family = "Trebuchet MS", color="blue", 
           size=18, 
           margin = margin(10, 0, 10, 0)), 
    legend.position = "bottom", 
    legend.title = element_blank(), 
    #axis.text.x = element_text(angle = 45, hjust = 1) 
    axis.text.x = element_blank(), 
    axis.ticks.x = element_blank() 
) 

ggplotly(p) %>% 
    layout(title = "New plot title", 
    #xaxis = list(showticklabels = FALSE), 
    legend = list(orientation = "h", 
        y = 0, x = 0)) 
+0

謝謝拉斐爾Cunha你的時間在調查這一點。但是,當我運行你的代碼時,我得到一個錯誤,指出:「長度錯誤(x $註釋):'x'必須是一個列表。」我錯過了什麼? – aotearoa

+0

我對這個錯誤一無所知。嘗試清除你的環境並運行你的代碼的第一部分,直到過濾器(Month_Names> = Start, Month_Names <= End)'然後運行我發佈的部分 –

+0

我清理了幾次環境並運行它建議,我仍然得到這個錯誤。你有沒有嘗試過在你的最後?我在R Studio 1.0.136上運行它。謝謝 – aotearoa