ggplot में किंवदंती शीर्षक हटा दें


111

मैं एक किंवदंती के शीर्षक को हटाने की कोशिश कर रहा हूं ggplot2:

df <- data.frame(
  g = rep(letters[1:2], 5),
  x = rnorm(10),
  y = rnorm(10)
)

library(ggplot2)
ggplot(df, aes(x, y, colour=g)) +
  geom_line(stat="identity") + 
  theme(legend.position="bottom")

यहां छवि विवरण दर्ज करें

मैंने यह प्रश्न देखा है और वहाँ कोई भी समाधान मेरे लिए काम नहीं करता है। अधिकांश के बारे में एक त्रुटि है कि कैसे optsपदावनत किया जाता है और themeइसके बजाय उपयोग किया जाता है। मैं भी के विभिन्न संस्करणों की कोशिश की है theme(legend.title=NULL), theme(legend.title=""), theme(legend.title=element_blank), आदि विशिष्ट त्रुटि संदेश हैं:

'opts' is deprecated. Use 'theme' instead. (Deprecated; last used in version 0.9.1)
'theme_blank' is deprecated. Use 'element_blank' instead. (Deprecated; last used in version 0.9.1)

ggplot2संस्करण 0.9.3 जारी होने के बाद से मैं पहली बार उपयोग कर रहा हूं और मुझे कुछ परिवर्तनों को नेविगेट करना मुश्किल हो रहा है ...


5
आप इसके लिए उपयोग कर सकते हैं labs(): labs(colour = "")ऊपर दिए गए ग्राफ़ को बनाने वाले अपने कोड में लाइन जोड़ें ।
डेनिस

जवाबों:


191

आप लगभग वहाँ थे: बस जोड़ें theme(legend.title=element_blank())

ggplot(df, aes(x, y, colour=g)) +
  geom_line(stat="identity") + 
  theme(legend.position="bottom") +
  theme(legend.title=element_blank())

कुकबुक ऑन आर के लिए यह पृष्ठ किंवदंतियों को अनुकूलित करने के बारे में बहुत सारे विवरण देता है।


2
यह सभी किंवदंती खिताबों को हटा देगा। अधिक स्थानीय नियंत्रण के लिए, guide = guide_legend()कमांड काम करता है। भरण किंवदंती शीर्षक को हटाने के लिए, लेकिन रंग किंवदंती शीर्षक रखने के लिए, जैसेscale_fill_brewer(palette = "Dark2", guide = guide_legend(title = NULL)) + scale_color_manual(values = c("blue", "white", "red"))
पैट्रिक टीटी

9

यह काम करता है और यह भी दर्शाता है कि किंवदंती शीर्षक को कैसे बदलना है:

ggplot(df, aes(x, y, colour=g)) +
  geom_line(stat="identity") + 
  theme(legend.position="bottom") +
  scale_color_discrete(name="")

7
यह एक खाली स्ट्रिंग के साथ शीर्षक को प्रतिस्थापित करता है और इसलिए लेबल और लीजेंड बॉक्स के बीच अतिरिक्त स्थान का कारण बनता है, जो केवल तभी दिखाई देगा जब लीजेंड के पास एक बॉक्स या रंग का बैकग्राउंड होता है, जहां वह तैनात होता है। तो यह आसान मामलों में त्वरित और तैयार दृष्टिकोण के लिए ठीक है, theme_bw()लेकिन उन मामलों में सबसे अच्छा नहीं है जहां किंवदंती के चारों ओर एक बॉक्स है और प्लॉट क्षेत्र (मेरे सामान्य दृष्टिकोण) पर कहीं तैनात है।
पैट्रिकटी

1
अवलोकन के लिए +1। मुझे दो अलग-अलग किंवदंतियों और उनके बीच व्हाट्सएप का उपयोग करने में समस्या थी जो उपरोक्त समाधान द्वारा बनाई गई थी। scale_color_manual(name=element_blank())+निचली किंवदंती की स्थापना ने इसे मेरे लिए हल कर दिया
जौल

@joaoal, element_blank()अनुशंसित दृष्टिकोण प्रतीत होता है। सेटिंग name = NULL एक और तरीका है।
पैट्रिक टीटी

1

labsरंग का उपयोग और सेटिंग का एक अन्य विकल्प NULL

ggplot(df, aes(x, y, colour = g)) +
  geom_line(stat = "identity") +
  theme(legend.position = "bottom") +
  labs(colour = NULL)

यहां छवि विवरण दर्ज करें


0

के लिए Error: 'opts' is deprecatedtheme()इसके बजाय उपयोग करें । (कमी, अंतिम बार संस्करण 0.9.1 में इस्तेमाल किया गया) 'मैं के opts(title = "Boxplot - Candidate's Tweet Scores")साथ बदल दिया labs(title = "Boxplot - Candidate's Tweet Scores")। इसने काम कर दिया!


0

चूंकि आपके पास एक भूखंड में एक से अधिक किंवदंतियां हो सकती हैं, इसलिए खाली स्थान छोड़ने के बिना केवल एक शीर्षक को चुनिंदा रूप से हटाने का एक तरीका यह nameहै कि scale_फ़ंक्शन के तर्क को सेट किया जाए NULL, अर्थात

scale_fill_discrete(name = NULL)

( एक और सूत्र पर टिप्पणी के लिए @pascal को kudos )

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.