ggplot2, हिस्टोग्राम को कैसे स्थानांतरित करें?

Jan 15 2021

मैं आर सीखने की कोशिश कर रहा हूं और मैंने इसे "हैंड्स-ऑन प्रोग्रामिंग विद आर" पुस्तक के माध्यम से जाना। मुझे एक समस्या का सामना करना पड़ा और यह जारी नहीं रह सकता क्योंकि यह मुझे बहुत परेशान करता है। एक अभ्यास के रूप में, मुझे ggplot2 पैकेज के साथ प्रयोग करना चाहिए और एक हिस्टोग्राम बनाना चाहिए। उपयोग किया जाने वाला कोड इस प्रकार है:

x <- c(1, 2, 2, 2, 3, 3)

qplot(x, binwidth = 1)

और हिस्टोग्राम को चित्र एक जैसा दिखना चाहिए। हालाँकि, जब मैं कोड चलाता हूं तो मेरा हिस्टोग्राम चित्र में एक जैसा नहीं दिखता है (भले ही यह होना चाहिए) और चित्र 2 में ऐसा दिखता है। यह मूल रूप से एक ही है लेकिन यह कहाँ होना चाहिए इसके बाईं ओर 0.5 दशमलव।

क्या कुछ कृपया मुझे बता सकते हैं कि हिस्टोग्राम चित्र 1 के समान क्यों नहीं दिखता है और इस तरह दिखने के लिए कोड को कैसे ठीक करना है?

चित्र 1: https://i.stack.imgur.com/dssBQ.jpg चित्र 2: https://i.stack.imgur.com/wUk1i.jpg

जवाब

2 Peter Jan 15 2021 at 23:25

मैं ggplot2_3.3.2 का R संस्करण 4.0.3 के साथ उपयोग कर रहा हूँ।

मैं उसी ग्राफ को प्राप्त करता हूं जैसा आप प्लॉट के बजाय सेट-अप में करते हैं https://rstudio-education.github.io/hopr/packages.html#packages-1।

मुझे पता नहीं चला कि पुस्तक में ggplot का कौन सा संस्करण प्रयोग किया गया है, संभवतः 2014 के आसपास से कुछ पाठ पर आधारित है। इस बात को ध्यान में रखते हुए @ the_one_neuron की टिप्पणी से मुझे संदेह है कि इस पुस्तक के लिखे जाने के बाद ggplot2 में बदलाव के साथ कुछ करना है।

यह मुद्दा द्विअर्थी या अधिक बोलचाल के 'द्वारों और पदों' में से एक है: आप चाहते हैं कि मान 1 से 1 और <2 (1.5 पर केंद्रित) के बजाय 0 और 1 (0.5 पर केंद्रित) के बीच में रखा जाए।

@ R2evans से बहुत अधिक विस्तृत विवरण है क्यों geom_histogram नकारात्मक बिन कम सीमा पर शुरू होता है, भले ही सभी मान> 0 हों? ।

वैसे भी यहाँ परिणाम अपनी उम्मीद ग्राफ के समान परिणाम प्राप्त करने के लिए एक ठगना है।


library(ggplot2)

x <- c(1, 2, 2, 2, 3, 3)

qplot(x, binwidth = 1, breaks = 1:4 - 0.000001, xlim = c(0, 4))

2021-01-15 को रेप्रेक्स पैकेज (v0.3.0) द्वारा बनाया गया

the_one_neuron Jan 15 2021 at 21:53

आप ऐसा कुछ करने की कोशिश कर सकते हैं। यह सही नहीं है, लेकिन यह बहुत करीब है

qplot(x, binwidth = 1, xlim =c(0,NA), ylab = "count")