Ggplot2 में सेंटर प्लॉट का शीर्षक


254

हाय यह सरल कोड (और इस सुबह से मेरी सभी स्क्रिप्ट) ने मुझे ggplot2 में एक ऑफ सेंटर शीर्षक देना शुरू कर दिया है

Ubuntu version: 16.04

R studio version: Version 0.99.896

R version: 3.3.2

GGPLOT2 version: 2.2.0

मैंने आज सुबह इसे स्थापित करने और इसे ठीक करने के लिए हौसले से ऊपर स्थापित किया है ...।

dat <- data.frame(
time = factor(c("Lunch","Dinner"), levels=c("Lunch","Dinner")),
total_bill = c(14.89, 17.23)
)

# Add title, narrower bars, fill color, and change axis labels
ggplot(data=dat, aes(x=time, y=total_bill, fill=time)) + 
  geom_bar(colour="black", fill="#DD8888", width=.8, stat="identity") + 
  guides(fill=FALSE) +
  xlab("Time of day") + ylab("Total bill") +
  ggtitle("Average bill for 2 people")

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


53
उपयोग... + theme(plot.title = element_text(hjust = 0.5))
J_F

जवाबों:


333

की रिलीज़ खबर से ggplot 2.2.0: "मुख्य कथानक शीर्षक अब एक उपशीर्षक के साथ बेहतर काम करने के लिए छोड़ दिया गया है" । इस plot.titleतर्क को भी देखें ?theme: "डिफ़ॉल्ट रूप से बाएं-गठबंधन"।

जैसा कि @J_F द्वारा बताया गया है, आप theme(plot.title = element_text(hjust = 0.5))शीर्षक को केंद्र में रख सकते हैं ।

ggplot() +
  ggtitle("Default in 2.2.0 is left-aligned")

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

ggplot() +
  ggtitle("Use theme(plot.title = element_text(hjust = 0.5)) to center") +
  theme(plot.title = element_text(hjust = 0.5))

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


जब मैं उपयोग करता ... theme(plot.title = element_text(hjust = 'center'))हूं तो मुझे त्रुटि चेतावनी संदेश मिलते हैं: 1: In unit(rep(xp, n), "npc") : NAs introduced by coercionv2: In validDetails.text(x) : NAs introduced by coercion और कोई शीर्षक नहीं। क्या यह एक बग है?
जेम्स हिर्स्चोर्न

2
@JamesHirschorn यह एक बग नहीं है। के लिए उपयोग किया जाने वाला मूल्य hjustसंख्यात्मक होना चाहिए।
स्टिबू

ggplot2 संस्करण 3.3.0 के रूप में, शीर्षक डिफ़ॉल्ट रूप से केंद्रित है।
अक्रोनिक्स

यदि आप अन्य तरीके से रुचि रखते हैं: सेंटर-अलिंगड से बाएं-संरेखित करने के लिए आगे बढ़ रहे हैं, तो आप SO के इस उत्तर का उपयोग कर सकते हैं: stackoverflow.com/a/57792897/2904315
Akronix

मैंने इस कोड को जोड़ा है theme(plot.title = element_text(hjust = 0.5)), लेकिन यह काम नहीं किया, यह अजीब है।
ahbon

134

जैसा कि हेनरिक द्वारा जवाब में कहा गया है , शीर्षक ggplot 2.2.0 के साथ डिफ़ॉल्ट रूप से बाएं-संरेखित हैं। शीर्षक को कथानक में जोड़कर देखा जा सकता है:

theme(plot.title = element_text(hjust = 0.5))

हालाँकि, यदि आप कई प्लॉट बनाते हैं, तो हर जगह इस लाइन को जोड़ना थकाऊ हो सकता है। एक तो ggplot के डिफ़ॉल्ट व्यवहार को भी बदल सकता है

theme_update(plot.title = element_text(hjust = 0.5))

एक बार जब आप इस लाइन को चला लेते हैं, तो बाद में बनाए गए सभी प्लॉट थीम सेटिंग plot.title = element_text(hjust = 0.5)को उनके डिफ़ॉल्ट के रूप में उपयोग करेंगे:

theme_update(plot.title = element_text(hjust = 0.5))
ggplot() + ggtitle("Default is now set to centered")

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

मूल ggplot2 डिफ़ॉल्ट सेटिंग्स पर वापस जाने के लिए आप या तो R सत्र को पुनरारंभ कर सकते हैं या डिफ़ॉल्ट विषय को चुन सकते हैं

theme_set(theme_gray())

2

ggeasyपैकेज एक समारोह कहा जाता है easy_center_title()तो बस यही काम करने के लिए। मुझे यह बहुत अधिक आकर्षक लगता है theme(plot.title = element_text(hjust = 0.5))और इसे याद रखना बहुत आसान है।

ggplot(data = dat, aes(time, total_bill, fill = time)) + 
  geom_bar(colour = "black", fill = "#DD8888", width = .8, stat = "identity") + 
  guides(fill = FALSE) +
  xlab("Time of day") +
  ylab("Total bill") +
  ggtitle("Average bill for 2 people") +
  ggeasy::easy_center_title()

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

ध्यान दें कि इस उत्तर को लिखने के रूप में आपको ggeasyउपयोग करने के लिए GitHub से विकास संस्करण को स्थापित करना होगा easy_center_title()। आप दौड़कर ऐसा कर सकते हैं remotes::install_github("jonocarroll/ggeasy")

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