Ggplot में संपादन कथा (पाठ) लेबल


120

मैंने डॉक्यूमेंटेशन में और स्टैकऑवरफ्लो को देखने में घंटों बिताए हैं, लेकिन मेरी समस्या का कोई हल नहीं निकलता है। उपयोग करते समय ggplotमैं अपने डेटाफ़्रेम में होने के बावजूद, किंवदंती में सही पाठ प्राप्त नहीं कर सकता। मैंने कोशिश की है scale_colour_manual,scale_fill_manuallabels= जैसे विभिन्न मूल्यों के साथ c("T999", "T888")", "cols"

यहाँ मेरा कोड है:

T999 <- runif(10, 100, 200)
T888 <- runif(10, 200, 300)
TY <- runif(10, 20, 30)
df <- data.frame(T999, T888, TY)


ggplot(data = df, aes(x=T999, y=TY, pointtype="T999")) + 
       geom_point(size = 15, colour = "darkblue") + 
       geom_point(data = df, aes(x=T888, y=TY), colour = 'red', size = 10 ) + 
       theme(axis.text.x = element_text(size = 20), axis.title.x =element_text(size = 20),   axis.text.y = element_text(size = 20)) +
       xlab("Txxx") + ylab("TY [°C]") + labs(title="temperatures", size = 15) + 
       scale_colour_manual(labels = c("T999", "T888"), values = c("darkblue", "red")) +    theme(legend.position="topright")

बहुत सराहना की जाएगी मदद!


8
पर एक नजर डालें इस ट्यूटोरियल पता लगाने के लिए जो डेटा स्वरूप ggplotके साथ (लंबी, चौड़ी नहीं) सबसे अधिक खुश है, और के बीच अंतर के लिए एक लग रहा है पाने के लिए मानचित्रण एक aesमें एक चर के लिए thetic aesकॉल, बनाम की स्थापना यह बाहर aes। आपको meltअपने डेटा को एक लंबे प्रारूप और प्रासंगिक चर में मैप colour(या fill) aesकरने की आवश्यकता है।
हेनरिक

जवाबों:


145

ggplot2पैकेज के साथ प्लॉट बनाने का तरीका सीखने के लिए ट्यूटोरियल @Henrik उल्लेख किया गया है ।

आपके डेटा के साथ एक उदाहरण:

# transforming the data from wide to long
library(reshape2)
dfm <- melt(df, id = "TY")

# creating a scatterplot
ggplot(data = dfm, aes(x = TY, y = value, color = variable)) + 
  geom_point(size=5) +
  labs(title = "Temperatures\n", x = "TY [°C]", y = "Txxx", color = "Legend Title\n") +
  scale_color_manual(labels = c("T999", "T888"), values = c("blue", "red")) +
  theme_bw() +
  theme(axis.text.x = element_text(size = 14), axis.title.x = element_text(size = 16),
        axis.text.y = element_text(size = 14), axis.title.y = element_text(size = 16),
        plot.title = element_text(size = 20, face = "bold", color = "darkgreen"))

इसका परिणाम यह होगा:

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

जैसा कि टिप्पणियों में @ user2739472 द्वारा उल्लेख किया गया है: यदि आप केवल लेजेंड टेक्स्ट लेबल्स को बदलना चाहते हैं और ggplot के डिफ़ॉल्ट पैलेट से रंगों को नहीं, तो आप scale_color_hue(labels = c("T999", "T888"))इसके बजाय उपयोग कर सकते हैं scale_color_manual()


@ सतीश जैसा कि आप देख सकते हैं, y- अक्ष का शीर्षक x- अक्ष में शीर्षक से छोटा है। संभावनाओं और उसके परिणामों का वर्णन करने के लिए विभिन्न आकारों का उपयोग किया जाता है। इस प्रकार उत्तर में प्रयुक्त कोड सही imo है।
जाप

@ मेरी पुरानी टिप्पणी को जोड़ना: यह निश्चित रूप से इस तरह से करने का एक विकल्प है! यह सब इस बात पर निर्भर करता है कि आप क्या हासिल करना चाहते हैं ;-)
जाप

9
यदि आप केवल लेजेंड टेक्स्ट लेबल्स को बदलना चाहते हैं और ggplot के डिफ़ॉल्ट पैलेट से रंगों को नहीं, तो आप scale_color_hue(labels = c("T999", "T888"))इसके बजाय उपयोग कर सकते हैंscale_color_manual()
user2739472

1
@ user2739472 Thx & true। इसे मेरे जवाब में जोड़ देंगे।
जाप

@ सतीश मैं थोड़ा लेट हो गया, लेकिन अब टाइपो तय किया :-)
जाप

41

किंवदंती खिताब विशिष्ट सौंदर्य द्वारा लेबल किया जा सकता है ।

यह guides()या ( यहां और यहांlabs() से ggplot2) कार्यों का उपयोग करके प्राप्त किया जा सकता है ) । यह आपको सौंदर्य मानचित्रण का उपयोग करके गाइड / किंवदंती गुणों को जोड़ने की अनुमति देता है।

यहां mtcarsडेटा सेट का उपयोग करके एक उदाहरण दिया गया है और labs():

ggplot(mtcars, aes(x=mpg, y=disp, size=hp, col=as.factor(cyl), shape=as.factor(gear))) +
  geom_point() +
  labs(x="miles per gallon", y="displacement", size="horsepower", 
       col="# of cylinders", shape="# of gears")

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

उपयोग करते हुए ओपी के प्रश्न का उत्तर देना guides():

# transforming the data from wide to long
require(reshape2)
dfm <- melt(df, id="TY")

# creating a scatterplot
ggplot(data = dfm, aes(x=TY, y=value, color=variable)) + 
  geom_point(size=5) +
  labs(title="Temperatures\n", x="TY [°C]", y="Txxx") +
  scale_color_manual(labels = c("T999", "T888"), values = c("blue", "red")) +
  theme_bw() +
  guides(color=guide_legend("my title"))  # add guide properties by aesthetic

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


मैं उस पर असहमत हूं। केवल शीर्षक निर्दिष्ट करते समय, इसे scale_ ..या labsतर्कों में निर्दिष्ट करना आसान होता है।
जाप

मैं 15 साल पहले आपके समाधान पर टिप्पणी कर रहा था जिसने शीर्षक को जोड़ा scale_color_manual(title="...", ...)। मैं देख रहा हूँ कि आपने इसे रंग सौंदर्य के संदर्भ में संशोधित किया है labs()। मैं एक विकल्प के रूप में अपने समाधान की पेशकश करता हूं।
मेगेट्रॉन

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