2016-12-16 141 views
0

我想修改我的傳奇的文字。我想爲其中一個鍵添加星號或上標(我知道上標更復雜)。以下是我的代碼示例:試圖修改ggplot2中的圖例文本,但最終有兩個傳說

Shares <- ggplot(data=Share, aes_string(x="x", y= "y")) + geom_line(alpha=1,aes(group = Group, color = Group, size = Group)) + 
    scale_size_manual(values = c(1,1,1,1,1)) + 
    scale_x_date(name="", date_breaks=("1 year")) + 
    scale_y_continuous(name="Title", limits=c(0,0.7),breaks = c(0,0.1,0.2,0.3,0.4,0.5,0.6,0.7), labels= percent (c(0, 0.1,0.2,0.3,0.4,0.5,0.6,0.7)), expand = c(0, 0)) + 
    scale_linetype_manual(values = c(rep("solid", 100))) + 
    scale_color_manual(values=LegendColor, breaks=c("a", "b", "c", "d", "e"), labels=c("a*", "b", "c", "d", "e")) + 
    ggtitle(expression(Title^{1})) + 
    theme_classic() + 
    guides(fill=guide_legend(nrow=2,byrow=TRUE)) + 
    theme(plot.margin=unit(c(0,0,0,-4),"mm"), plot.title=element_text(size=27, margin=margin(t=-30, b=30)), axis.text.x=element_blank(), axis.line.x=element_line(color="black", size=0.5), axis.title.x=element_text(hjust=1), 
     axis.title.y=element_text(angle=0, size=20), axis.text.y=element_text(size=15), axis.line.y=element_line(color="black", size=0.5), 
     legend.text=element_text(size=15), legend.position="bottom", legend.title=element_blank()) + 
    guides(size=guide_legend(nrow=2, override.aes=list(size=2))) 

要關注的區域是標籤scale_color_manual。我所要做的只是在圖例文本中的「a」中添加一個星號或上標「2」(本例中有一個星號)。然而,當我運行這段代碼時,我得到了我在標籤列表上的所有內容,上面列出了我在中斷列表中的所有內容,因此兩個傳說在對方之上。此外,我爲導遊圖例設置的導遊參數適用於休息圖例,而不是標籤圖例。

我看了其他堆棧文章,沒有解決方案工作。我已經嘗試消除標籤參數並覆蓋休息圖例(scale_color_hue)的文本以及指南(fill = FALSE)以擺脫第二個圖例,但是我嘗試的任何東西似乎都不起作用。

感謝您的幫助!

+0

代碼中包含相當多的線路是多餘的或不相關的,和我們沒有重現此數據。你可以嘗試做一個最小可重現的例子嗎?我的猜測是,你需要爲尺寸和顏色比例有相同的休息和標籤等,否則他們會分開。 – baptiste

回答

0

最少的情節:

ggplot(ToothGrowth, aes(len, dose, colour=supp, size=supp)) + geom_point() 

enter image description here

改變一個傳奇與自定義標籤:

last_plot() + scale_colour_manual(values = c("red","blue"), breaks = c("OJ", "VC"), labels = expression(alpha, beta)) 

enter image description here

更改第二個傳說一模一樣的標籤,休息,標題:

last_plot() + scale_size_manual(values = c(1, 2), breaks = c("OJ", "VC"), labels = expression(alpha, beta)) 

enter image description here

+0

謝謝你baptiste!我需要同時使用scale_colour_manual和scale_size_manual,但也要在兩者中指定中斷和標籤,否則它將缺省爲數據名稱。 –