एक ग्राफ पर सूचना के तीन टुकड़े प्रदर्शित करना


15

नोट: कच्चे डेटा के 50 अंक अभी जुड़े हुए हैं।

मैं प्रदर्शित करना चाहता हूं कि मैंने कितने अध्ययन किए हैं, और मैंने पूरे सप्ताह में कितने पृष्ठ पूरे किए हैं, दिन के हिसाब से टूट गया है, और मैंने ऐसा किया है जैसा कि नीचे दिखाया गया है:यहाँ छवि विवरण दर्ज करें

मुझे लोगों ने मुझे बताया है कि वे ग्राफ़ को समझ नहीं सकते हैं, लेकिन मुझे नहीं पता कि मैं उन्हें कैसे प्रदर्शित कर सकता हूं। चूंकि मुझे अनिवार्य रूप से एक संचयी चित्रण के बिना तीन आयामों की आवश्यकता होगी। मैं कई रेखा रेखांकन का उपयोग करने से बचना चाहता हूं, क्योंकि कुछ हफ्तों के बाद रेखांकन अवैध हो जाएगा। क्या मैं कुछ नहीं कर सकता?

मैं इन्हें और अधिक स्पष्ट रूप से कैसे प्रदर्शित कर सकता हूं?

Date        Total   Total pages
21/11/2014  2.4166   0
22/11/2014  0        0
23/11/2014  1.5833   4
24/11/2014  3.0166  13
25/11/2014  2.4999   6
26/11/2014  1.4833   3
27/11/2014  3.0499   6
28/11/2014  0        0
29/11/2014  2.4499   5
30/11/2014  2.8833   2
 1/12/2014  0        0
 2/12/2014  4.1166   8
 3/12/2014  1.3333   5
 4/12/2014  1.2499   3
 5/12/2014  1.6666   8
 6/12/2014  0        0
 7/12/2014  2.4833   9
29/12/2014  0        0
30/12/2014  1.2332   1
31/12/2014  0.3333   0
 1/01/2015  3.5666   2
 2/01/2015  0.8166   0
 3/01/2015  2.75    28
 4/01/2015  0.4166   0
 5/01/2015  1.2833   0
 6/01/2015  0.3333   3
 7/01/2015  0        0
 8/01/2015  0        0
 9/01/2015  2.35     2
10/01/2015  0.5666   0
11/01/2015  0        0
12/01/2015  1.6666   0
13/01/2015  2.2666   5
14/01/2015  2.5165   6
15/01/2015  2.0166   0
16/01/2015  2.9666   1
17/01/2015  0.8333   0
18/01/2015  0.6666   1
19/01/2015  1.45     0
20/01/2015  0.3166   0
21/01/2015  0        0
22/01/2015  0.2333   0
23/01/2015  0.85     2
24/01/2015  0        0
25/01/2015  0        0
26/01/2015  0.6666   4
27/01/2015  0.8333   1
28/01/2015  1.5498   5
29/01/2015  6.4159   9
30/01/2015  2.9166   0

यदि आप नमूना डेटा पोस्ट कर सकते हैं, तो रुचि रखने वाले आपके समाधान को खेल सकते हैं और दिखा सकते हैं। यथार्थवादी होने के लिए, कई हफ्तों की आवश्यकता होगी, जैसा कि समस्या का सार है जैसा कि सप्ताह की संख्या बढ़ जाती है।
निक कॉक्स

@NickCox मैं कुछ ही हफ्तों में रिपॉजिट कर सकता हूं क्योंकि मैं ईमानदारी से अनिश्चित हूं कि डेटा कैसे बदलेगा और मैं इसके पहले 13 दिनों में अभी तक (3 जिनमें से कोई अध्ययन नहीं है) के माध्यम से रहता है

@NickCox मैं कच्चा डेटा कैसे पोस्ट करूं?

1
मेरी सलाह का थोड़ा इंतजार है। प्रश्न को अपडेट करके आपने उस पर ध्यान आकर्षित किया है। देखें कि क्या आपको नए उत्तर मिलते हैं।
निक कॉक्स

1
इन डेटा के बारे में आप क्या दिखाना चाहते हैं ? आप क्या कहानी बताना चाहते हैं? आप अपने डेटा w / बार ग्राफ़ के बारे में लोगों को समझने के लिए क्या प्रयास कर रहे हैं?
गूँग - मोनिका

जवाबों:


7

तारीख / कैलेंडर आधारित डेटा को विज़ुअलाइज़ करने का एक तरीका मैट्रिक्स डिस्प्ले के माध्यम से है जो डेटा को रंग के साथ एन्कोड करता है। मैट्रिक्स (या तालिका) को व्यवस्थित किया जाता है ताकि पंक्तियां सप्ताह का प्रतिनिधित्व करें और कॉलम दिनों का प्रतिनिधित्व करें। यदि वांछनीय है तो आप साप्ताहिक कुल के लिए एक अंतिम कॉलम जोड़ सकते हैं।

यदि डेटा सही तरीके से व्यवस्थित किया गया है तो सशर्त स्वरूपण के साथ इसे एक्सेल में कुछ हद तक लागू किया जा सकता है। विशेष रूप से, आप अपने मूल डेटा में देखने वाले फ़ार्मुलों के साथ मानों का "ग्रिड" बना सकते हैं। वहां से, आप परिणाम प्रदर्शित करने के लिए सशर्त स्वरूपण का उपयोग कर सकते हैं।

यहाँ क्या परिणाम की तरह लग सकता है। क्षमा करें, मैंने तिथि प्रारूप बदल दिया है। सेल एच 1 में सूत्र है: "=IFERROR(VLOOKUP($G$1+$G6*7+H$5, $B$5:$C$16,2,FALSE), 0)"। दिनों को सही क्रम में लाने के लिए यह कुछ गणित कर रहा है। उम्मीद है कि यह सीधा है।

मैट्रिक्स व्यवस्था के साथ सशर्त स्वरूपण की छवि

यदि आप वास्तव में लिफाफे को धक्का देना चाहते हैं, तो आप इस डेटा को प्रदर्शित करने के लिए d3 और उसके कैलेंडर प्लगइन जैसे ढांचे का उपयोग कर सकते हैं । हालांकि यह इसके लायक होने की तुलना में एक उपक्रम का अधिक हो सकता है।

यह प्रारूप बहुत हद तक समान है कि कैसे GitHub समय के साथ उपयोगकर्ता गतिविधि / योगदान प्रदर्शित करता है। यहाँ एक उपयोगकर्ता है (मुझे नहीं!)। यहाँ छवि विवरण दर्ज करें


2
(+1) मुझे यह दृष्टिकोण पसंद है, खासकर क्योंकि यह उसी स्प्रेडशीट में उपयोग के लिए अच्छी तरह से अनुकूल है जिसमें डेटा दर्ज किया जा रहा है। यह ग्राफिकल डिस्प्ले प्रभावी रूप से हीट मैप है । मैं नियमित रूप से स्वयं के समान सेट-अप का उपयोग करता हूं, और मुझे लगता है कि एक कमजोरी यह है कि रुझानों के पहलुओं को बाहर निकालना मुश्किल हो सकता है, इसलिए महीन विवरण (पीटर फ्लॉम, निक कॉक्स) दिखाने के लिए लाइन ग्राफ के कुछ प्रकार के साथ इसे पूरक करना अच्छा हो सकता है। और मैंने सभी अच्छे सुझाव दिए हैं)।
सिल्वरफिश

6

मूल की प्रमुख विशेषता साप्ताहिक रकम है। रंगों को सीखने के बाद ही व्यक्तिगत मूल्य सार्थक होते हैं, और मुझे लगता है कि यह एक बड़ा कारण है कि नए दर्शकों के लिए कथानक काम नहीं करता है। इससे संबंधित, दिनों का समय पहलू खो गया है। रंगों का एक क्रमिक सेट मदद कर सकता है (जैसे, 7 रंगों का नीला)।

मैं आम तौर पर हर आइटम को लेबल करने की परवाह नहीं करता - क्या सही मूल्य महत्वपूर्ण हैं? यदि आप बिना लेबल के हर मूल्य की व्याख्या नहीं कर सकते हैं तो यह ग्राफ अपना काम नहीं कर रहा है।

मेरी कोशिश पर । साप्ताहिक रकम के स्पष्ट महत्व को देखते हुए, मैंने साप्ताहिक संचयी रकम की साजिश रची है। यह साप्ताहिक रकम और समय क्रम में दिनों को दर्शाता है। सटीक दिन मान कम स्पष्ट हैं, लेकिन बाह्य मान अभी भी बाहर रहेंगे।

इस तरह की छोटी लाइन के भूखंडों के लिए (जिसे स्पार्कलाइन आकार में कम किया जा सकता है ) यह एक संदर्भ रेखा या क्षेत्र के लिए सहायक है। चित्रण के लिए, मैंने एक लक्ष्य सीमा जोड़ी है। यदि कोई लक्ष्य उचित नहीं है, तो संदर्भ पिछले तीन सप्ताह की सीमा या कुछ निश्चित संदर्भ मूल्य की तरह हो सकता है।

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

मैंने संकेत देने के लिए लाल का उपयोग किया है कि त्वरित स्कैनिंग के लिए कौन से सप्ताह लक्ष्य से नीचे थे।

बहुत अधिक हफ्तों के साथ, आप उन्हें एक ऊर्ध्वाधर सूची के बजाय ग्रिड में व्यवस्थित कर सकते हैं।

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


मुझे लगता है कि यह उत्कृष्ट है। क्या अध्ययन के घंटे और पृष्ठों को कवर की गई जानकारी को संयोजित करने का एक प्रभावी तरीका है, जो (कम से कम मुझे आभास मिलता है) अभ्यास के प्रमुख उद्देश्यों में से एक है? मुझे संदेह है कि यह पहले ग्राफिक में "अध्ययन के घंटे" और "पृष्ठों को पूरा करने" के लिए बैक-टू-बैक (यानी वर्ष के सप्ताह के बाएं कॉलम में प्लॉट किए गए अध्ययन घंटे, और वर्ष के सही कॉलम में पूरा किए गए पृष्ठ हैं) में काफी प्रभावी होगा। )। लेकिन मुझे यकीन नहीं है कि दूसरे ग्राफिक में अच्छा काम करेगा।
सिल्वरफिश

स्पष्ट रूप से एक समाधान अध्ययन किए गए पृष्ठों के लिए एक द्वितीयक ऊर्ध्वाधर अक्ष के साथ दोनों श्रृंखला को ओवरप्लेट करने के लिए होगा, लेकिन बहुत से लोग इसके खिलाफ मजबूत राय रखते हैं, जैसे हैडली विकम ने जानबूझकर इसे ggplot में लागू करने से इनकार कर दिया। मैं आमतौर पर ऐसा करने से बचता हूं, लेकिन यह समझ में आ सकता है कि अगर दोनों के लिए लक्ष्य हैं - यह द्वितीयक y- अक्ष के लिए एक प्राकृतिक पैमाने को पेश करेगा, ताकि घंटे और पृष्ठों के लिए लक्षित क्षेत्रों को बड़े करीने से संरेखित किया जा सके। वह स्केलिंग निर्णय आम तौर पर कई y- अक्षों के साथ विवादास्पद मुद्दा है।
सिल्वरफिश

धन्यवाद @Silverfish! मैं एक ग्राफ में भी दो पैमानों का लाभ उठाता हूं, लेकिन जैसा कि आप कहते हैं कि यदि दोनों को उनके संबंधित लक्ष्यों के सापेक्ष समान पैमाने पर रखा जा सकता है, तो यह काम कर सकता है। मुझे अपने उत्तर में स्पष्ट रूप से कहना चाहिए था कि केवल एक उपाय दिखाने से मुझे लगता है कि दूसरे उपाय को उसी तरह दिखाया जाएगा लेकिन अलग-अलग रेखांकन में। ऊर्ध्वाधर सूची रूप में, प्रत्येक माप रेखांकन का एक अलग स्तंभ हो सकता है।
Xan

यह एक और शानदार जवाब है। मुझे निश्चित रूप से आपके द्वारा लागू लक्ष्य विचार पसंद है। मुझे यह देखना होगा कि मैं अब क्या करता हूं कि मैंने सभी उत्तरों को देखा है। धन्यवाद

5

अगर मैं आपको सही ढंग से समझूं, तो लाइन ग्राफ का उपयोग नहीं करने का कारण यह है कि आपके पास कई सप्ताह हैं और ग्राफ गड़बड़ हो जाएगा।

यदि यह समस्या है, तो आप समय श्रृंखला को घटकों में विभाजित कर सकते हैं:

दैनिक भिन्नता

साप्ताहिक रूपांतर

लंबी अवधि की प्रवृत्ति

और कुछ।

विलियम एस। क्लीवलैंड अपनी पुस्तकों में से एक में इसका एक अच्छा उदाहरण दिखाता है (मैं अपने कार्यालय में नहीं हूं और याद नहीं कर सकता कि उसकी कौन सी किताबों का उदाहरण है लेकिन यह या तो विज़ुअलाइज़िंग डेटा है या डेटा को रेखांकन करने के तत्व हैं )।

R और SAS दोनों के पास ऐसा करने के लिए उपकरण हैं। क्या आप दोनों में से किसी एक की पहुँच है?


मेरे पास मेरे कंप्यूटर पर आर है, लेकिन मैंने शायद ही कभी इसका इस्तेमाल किया हो। (पूरी तरह से सीखने के लिए तैयार)

ठीक है, इसमें लर्निंग कर्व है लेकिन डीकंपोज़ () फंक्शन में देखें। आप जो चाहते हैं उसे पाने के लिए आपको कुछ खेल करने पड़ सकते हैं। इसके अलावा, यदि आप क्लीवलैंड की किताबें पा सकते हैं, तो वे बकाया हैं।
पीटर फ्लोम - मोनिका

3
यहाँ क्लीवलैंड उदाहरण पीटर का उल्लेख है, आर डॉक्स से। अगर आपके पास मैं आर स्थापित आप उदाहरण चला सकते हैं: stat.ethz.ch/R-manual/R-devel/library/stats/html/stl.html
कीरन

@ कीरन सही उत्पादन? imgur.com/IzRC0h8

5

मैं पहले आपके मूल स्टैक्ड या विभाजित बार ग्राफ़ पर कुछ आपत्तियाँ लिखूंगा।

ए। रंग कोडिंग पूरी तरह से मनमाना दिखाई देता है। इसलिए ग्राफ को बार-बार लेजेंड और ग्राफ के बीच आगे-पीछे किए बिना अध्ययन नहीं किया जा सकता है।

ख। शून्य अंतर्निहित हैं, अदृश्य बार खंडों के रूप में। शून्य भिन्नता का हिस्सा हैं।

उन और अन्य कारणों से, ग्राफ़ को डिकोड करना मुश्किल है।

उस समय कहा गया है, यदि ब्याज सप्ताह से सप्ताह तक योग में भिन्नता का अध्ययन करने में है, तो योग्यता में योग्यता है। कई हफ्तों को कई बार के रूप में प्लॉट किया जा सकता है। इसके विपरीत यह है कि हफ्तों के भीतर विविधताओं का अध्ययन करना कठिन और कठिन हो जाएगा।

बैकअप लेना: प्रत्येक समस्या में यहाँ तीन चर होते हैं।

  1. समय का अध्ययन या पृष्ठों को पूरा किया।

  2. सप्ताह के दिन।

  3. सप्ताह की संख्या।

जैसे-जैसे सप्ताह की संख्या बढ़ेगी, कोई भी ग्राफ़ अधिक विस्तृत हो जाएगा। चुनौती उस विस्तार को नियंत्रण में रखने की है।

मैं एक चक्र कथानक पर विचार करूंगा (साहित्य में अन्य नामों का उपयोग किया गया है, लेकिन अधिकांश इसका उपयोग मौसमी भिन्नता को देखने के लिए करते हैं)। नाओमी रॉबिंस द्वारा यहां एक स्पष्ट परिचय दिया गया है। उनके उदाहरणों में उन लोगों को भी शामिल किया गया है, जहां आपकी रुचि हफ्तों और उसके बीच के बदलावों में है।


उस बहुत अच्छी लिंक के लिए धन्यवाद। आपकी आपत्ति पर एक टिप्पणी, दिन वास्तव में (नीचे से ऊपर) शुक्रवार-गुरुवार को ढेर हो जाते हैं, लेकिन कुछ दिन गायब रहना निश्चित रूप से पठनीयता के संबंध में एक वैध चिंता है।

वास्तव में, लेकिन लोगों को अभी भी डिकोड करने के लिए किंवदंती का उपयोग करने की आवश्यकता है।
निक कॉक्स

R के पास एक महीने का कमांड है जो वास्तव में साप्ताहिक डेटा पर उपयोग किया जा सकता है - देखें stackoverflow.com/questions/5826703/…
सिल्वरफ़िश

5

यदि आप सात-दिन, चौदह-दिवसीय या संभवतया 28-दिवसीय मूविंग एवरेज ले रहे हैं, तो लाइन ग्राफ की व्याख्या करना आसान होगा। यह उन्हें बाहर सुचारू करेगा और फिर भी आपको रुझानों को देखने की अनुमति देगा।

पीटर फ्लॉम के समाधान के साथ इसकी कुछ समानताएं हैं, हालांकि यह सरल है और इसलिए यह पूरी तस्वीर के रूप में नहीं बताता है - लेकिन यह आपकी आवश्यकताओं के लिए पर्याप्त हो सकता है। यदि आप अपने डेटा को एक स्प्रेडशीट में रिकॉर्ड कर रहे हैं, तो इसका यह फायदा है कि इस तरह के औसत को स्प्रेडशीट के भीतर कुछ फॉर्मूले सेट करके आसानी से किया जा सकता है, और जैसे ही आप नया डेटा भरते हैं, ग्राफ अपने आप अपडेट हो जाएगा।

रेखांकन शामिल करने के लिए अद्यतन करें

मूविंग एवरेज के लिए लाइन ग्राफ

सात-दिवसीय रोलिंग औसत के लिए स्प्रेडशीट का ग्राफ अनिर्दिष्ट है, लेकिन यह अपना काम अच्छी तरह से करने के लिए लगता है - दैनिक भिन्नता को सुचारू किया जाता है, इसलिए रुझान का पता लगाना आसान होता है (समकक्ष दैनिक चार्ट की तुलना में जो इतना शोरगुल है कि यह समझ से बाहर है)। इस प्लॉट द्वारा कुछ प्रमुख विशेषताओं को अच्छी तरह से चुना गया है: उदाहरण के लिए, बड़ी मात्रा में काम जनवरी के मध्य में, प्रति घंटा के हिसाब से किया गया था, लेकिन यह प्रति दिन पूरे किए गए औसत पृष्ठों में आनुपातिक वृद्धि के साथ नहीं था। क्रिसमस ब्रेक बहुत दिखाई देता है और इसलिए जब तक व्यक्तिगत डेटा बिंदु स्पष्ट रूप से प्लॉट किए जाते हैं तब यह बहुत भ्रामक नहीं है (यदि बस लाइन दिखाई दे रही थी, तो यह निर्धारित करना असंभव होगा कि फ्लैट अवधि डेटा की कमी के कारण थी!)। फिर भी, मैं दृढ़ता से अनुशंसा करते हैं सहित1.5

डेटा के सिर्फ पचास आइटम के साथ यह लंबे समय तक चलने की प्रवृत्ति का पता लगाने के लिए औसत अवधि से अधिक की कोशिश करने लायक नहीं लगता था। इसी तरह मुझे संदेह है कि पीटर फ़्लॉम के मौसमी अपघटन का उत्कृष्ट विचार ऐसे सीमित आंकड़ों के साथ संघर्ष करेगा। यदि आप अपनी स्प्रेडशीट में अपघटन करते हैं, तो ब्रेक को शून्य डेटा के रूप में शामिल करना और भी महत्वपूर्ण होगा।

मेरे फॉर्मूले को पुन: पेश करने के लिए, इसे चिपकाएँ ताकि 'दिनांक' सेल में हो A1:

Date    Hours   Pages   7-day rolling hours 7-day rolling pages
25/11/14    2.4999  6       
26/11/14    1.4833  3       
27/11/14    3.0499  6       
28/11/14    0   0       
29/11/14    2.4499  5       
30/11/14    2.8833  2       
01/12/14    0   0   =AVERAGE(B2:B8) =AVERAGE(C2:C8)
02/12/14    4.1166  8   =AVERAGE(B3:B9) =AVERAGE(C3:C9)
03/12/14    1.3333  5   =AVERAGE(B4:B10)    =AVERAGE(C4:C10)
04/12/14    1.2499  3   =AVERAGE(B5:B11)    =AVERAGE(C5:C11)
05/12/14    1.6666  8   =AVERAGE(B6:B12)    =AVERAGE(C6:C12)
06/12/14    0   0   =AVERAGE(B7:B13)    =AVERAGE(C7:C13)
07/12/14    2.4833  9   =AVERAGE(B8:B14)    =AVERAGE(C8:C14)
29/12/14    0   0   =AVERAGE(B9:B15)    =AVERAGE(C9:C15)
30/12/14    1.2332  1   =AVERAGE(B10:B16)   =AVERAGE(C10:C16)
31/12/14    0.3333  0   =AVERAGE(B11:B17)   =AVERAGE(C11:C17)
01/01/15    3.5666  2   =AVERAGE(B12:B18)   =AVERAGE(C12:C18)
02/01/15    0.8166  0   =AVERAGE(B13:B19)   =AVERAGE(C13:C19)
03/01/15    2.75    28  =AVERAGE(B14:B20)   =AVERAGE(C14:C20)
04/01/15    0.4166  0   =AVERAGE(B15:B21)   =AVERAGE(C15:C21)
05/01/15    1.2833  0   =AVERAGE(B16:B22)   =AVERAGE(C16:C22)
06/01/15    0.3333  3   =AVERAGE(B17:B23)   =AVERAGE(C17:C23)
07/01/15    0   0   =AVERAGE(B18:B24)   =AVERAGE(C18:C24)
08/01/15    0   0   =AVERAGE(B19:B25)   =AVERAGE(C19:C25)
09/01/15    2.35    2   =AVERAGE(B20:B26)   =AVERAGE(C20:C26)
10/01/15    0.5666  0   =AVERAGE(B21:B27)   =AVERAGE(C21:C27)
11/01/15    0   0   =AVERAGE(B22:B28)   =AVERAGE(C22:C28)
12/01/15    1.6666  0   =AVERAGE(B23:B29)   =AVERAGE(C23:C29)
13/01/15    2.2666  5   =AVERAGE(B24:B30)   =AVERAGE(C24:C30)
14/01/15    2.5165  6   =AVERAGE(B25:B31)   =AVERAGE(C25:C31)
15/01/15    2.0166  0   =AVERAGE(B26:B32)   =AVERAGE(C26:C32)
16/01/15    2.9666  1   =AVERAGE(B27:B33)   =AVERAGE(C27:C33)
17/01/15    0.8333  0   =AVERAGE(B28:B34)   =AVERAGE(C28:C34)
18/01/15    0.6666  1   =AVERAGE(B29:B35)   =AVERAGE(C29:C35)
19/01/15    1.45    0   =AVERAGE(B30:B36)   =AVERAGE(C30:C36)
20/01/15    0.3166  0   =AVERAGE(B31:B37)   =AVERAGE(C31:C37)
21/01/15    0   0   =AVERAGE(B32:B38)   =AVERAGE(C32:C38)
22/01/15    0.2333  0   =AVERAGE(B33:B39)   =AVERAGE(C33:C39)
23/01/15    0.85    2   =AVERAGE(B34:B40)   =AVERAGE(C34:C40)
24/01/15    0   0   =AVERAGE(B35:B41)   =AVERAGE(C35:C41)
25/01/15    0   0   =AVERAGE(B36:B42)   =AVERAGE(C36:C42)
26/01/15    0.6666  4   =AVERAGE(B37:B43)   =AVERAGE(C37:C43)
27/01/15    0.8333  1   =AVERAGE(B38:B44)   =AVERAGE(C38:C44)
28/01/15    1.5498  5   =AVERAGE(B39:B45)   =AVERAGE(C39:C45)
29/01/15    6.4159  9   =AVERAGE(B40:B46)   =AVERAGE(C40:C46)
30/01/15    2.9166  0   =AVERAGE(B41:B47)   =AVERAGE(C41:C47)

5

जैसा कि मैंने आपके प्रश्न को समझा है, घंटों और पृष्ठों को अलग-अलग प्रदर्शित करना संभव होगा। मैं पहले वह करूँगा। बाद में, मैं एक भूखंड में कुल और पृष्ठ प्रदर्शित करूँगा। मैं अनुमान लगा रहा हूं कि वास्तविक संख्याएं सबसे महत्वपूर्ण नहीं हैं - सप्ताह और सप्ताह के दिनों का अवलोकन करना अधिक महत्वपूर्ण है, जो उत्पादक थे और जो नहीं थे। उस स्थिति में, मेरा सुझाव है कि आप प्राकृतिक अस्थायी संरचना को बनाए रखें क्योंकि आपके डेटा में वास्तव में केवल एक अस्थायी आयाम है। हम अभी भी हफ़्ते को कम कर सकते हैं।

मैंने इस पहले प्लॉट का निर्माण करने के लिए निम्न आर-कोड और ggplot2-package का उपयोग किया। आपका डेटा नीचे दिए गए कोड में ऑब्जेक्ट डेटा में लोड किया गया है। प्लॉट एक समूहीकृत बार प्लॉट है, जिसमें ग्रे बार हैं जो साप्ताहिक रूप से पन्नों का संकेत देते हैं।

data <- rbind(data.frame(Date = c("17/11/2014", "18/11/2014", "19/11/2014", "20/11/2014"),
                         Total = rep(0, 4),
                         Pages = rep(0, 4)), 
              data,
              data.frame(Date = c("31/01/2015", "01/02/2015"),
                         Total = c(0, 0),
                         Pages = c(0, 0)))

n <- dim(data)[1]

data$Date <- as.Date(data$Date, format = "%d/%m/%Y")
data$weekday <- factor(rep(c("Monday", "Tuesday", "Wednesday", "Thursday",
                             "Friday", "Saturday", "Sunday"), length.out = n))
data$weekday <- factor(data$weekday, levels(data$weekday)[c(2,6,7,5,1,3,4)])
data$week <- factor(rep(seq(from = 0, to = ceiling(((n - 3)/7))), 
                        each = 7, length.out = n))

ggplot(data = data, aes(x = week, y = Pages)) + 
  geom_bar(aes(fill = weekday), stat = "identity", position = "dodge") + 
  labs(fill = NULL) + xlab(NULL) + ylab("Number of pages") + 
  geom_bar(stat = "identity", alpha = 0.2) + theme(panel.background = element_blank()) +
  scale_x_discrete(labels = paste("Week", seq(from = 0, to = 7)))

ग्रे सलाखों की ऊंचाई सप्ताह के पन्नों का संकेत देती है।

यह स्पष्ट रूप से सही नहीं है। ग्रे बार उन पर हावी होते हैं, जितना कि एक दिन के बार की तुलना में उनके पास पढ़ने की समान मात्रा के लिए एक बड़ा क्षेत्र होता है। हम उन्हें पतला बना सकते हैं, लेकिन मुझे पसंद है कि जिस तरह से वे हफ्तों का परिसीमन करते हैं। वे काफी अच्छी तरह से इंगित करते हैं कि एक ही सप्ताह में कौन से दिन हैं - ऐसा कुछ जो जरूरी नहीं कि बुद्धिमानी से अन्यथा हो। खासकर इसलिए कि हमारे पास शून्य मायने रखता है।

अगले प्लॉट में, मैंने ग्रे बार की ऊंचाई के रूप में पृष्ठों की संख्या (सप्ताह के भीतर) का उपयोग किया है।

ग्रे सलाखों की ऊंचाई सप्ताह के पन्नों का संकेत देती है।

यह संभवत: बेहतर डेटा का प्रतिनिधित्व करता है। हालाँकि, उस सप्ताह 0 और 7 को नोटिस भ्रामक है क्योंकि उनमें 7 दिन शामिल नहीं थे। आप आसानी से इसके आसपास काम कर सकते थे।

यदि आप पृष्ठों और समय को एक साथ प्रदर्शित करने पर जोर देते हैं, तो आप बैक-टू-बैक बार प्लॉट कर सकते हैं। यह थोड़ा भ्रमित करने वाला हो सकता है क्योंकि दो ऊर्ध्वाधर पैमाने समान नहीं हैं। दूसरी ओर, समय बिताने और सीधे इस तरह से काम करने की तुलना करना अच्छा हो सकता है।

बैक-टू-बैक प्लॉट में समय और पृष्ठों का मेल।

संपादित करें: यह महसूस करते हुए कि रंगों की वास्तव में इतनी आवश्यकता नहीं है और एक्सन (टिप्पणियों के नीचे देखें) से प्रेरित होकर आप इस तरह से कुछ को सरल बना सकते हैं। मैंने एक अतिरिक्त दृश्य मार्गदर्शिका देने के लिए मंगलवार को चिह्नित किया है। आप सभी सलाखों के लिए एक ही रंग का उपयोग करने के पक्ष में भी बहस कर सकते हैं ताकि कुछ (मनमाने ढंग से) दिनों में अधिक बेरोजगारी न हो।

एक सरल संस्करण।

अंतिम नोट पर, आप माध्य मान द्वारा अपने मानों को विभाजित करके कुल्हाड़ियों को अलग तरीके से स्केल करने की कोशिश कर सकते हैं। यह 1 को "सामान्य" मान देगा। हम इस बिंदु पर जोर देने के लिए 1 पर एक पंक्ति शामिल कर सकते हैं - अब बैक-टू-बैक प्लॉट पर किया गया है। माध्य कार्य भार के मामले में यह "अच्छे" को "बुरे" दिनों से अलग करता है।

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

इस साजिश पर हम यह भी सुनिश्चित कर सकते हैं कि एक इकाई दोनों अक्षों पर समान दूरी से मेल खाती है क्योंकि वे अब तुलनीय हैं।

यह भी ध्यान दें कि मैंने पहले संस्करण में दिनों को गड़बड़ कर दिया था। मैंने कोड और भूखंडों को ठीक कर दिया है और मैं सप्ताह के सात दिनों का अभ्यास करूंगा।

अंतिम भूखंड का उत्पादन करने वाला कोड:

data$normPages <- data$Pages/mean(data$Pages)
data$normTotal <- data$Total/mean(data$Total)

data$weekNormPages <- data$Pages/(7*mean(data$Pages))
data$weekNormTotal <- data$Total/(7*mean(data$Total))

pTop <- ggplot(data = data, aes(x = week)) + geom_bar(aes(linetype = weekday, y = normPages), 
                                                      stat = "identity", position = "dodge", 
                                                      fill = "dodgerblue") + labs(fill = NULL) +
  xlab(NULL) + ylab("Number of pages") + geom_bar(aes(y = weekNormPages), stat = "identity", alpha = 0.3) + 
  theme(panel.background = element_blank(), axis.ticks.length=unit(0,"cm")) + guides(linetype = FALSE) +
  scale_x_discrete(labels = paste("Week", seq(from = 0, to = 7))) + ylab(NULL) + 
  annotate("text", label = "Pages read", x = "1", y = 10) +
  theme(plot.margin = unit(c(1,.5,.1,.8), "cm")) + geom_hline(yintercept = 1)
pTop

pBot <- ggplot(data = data, aes(x = week)) + geom_bar(aes(linetype = weekday, y = normTotal), 
                                                      stat = "identity", position = "dodge", fill = "dodgerblue") + 
  labs(fill = NULL) +
  xlab(NULL) + ylab("Number of hours") + geom_bar(aes(y = weekNormPages), stat = "identity", alpha = 0.3) + 
  theme(panel.background = element_blank(), axis.ticks.length=unit(0,"cm")) + guides(linetype = FALSE) + 
  scale_x_discrete(labels = NULL) + guides(fill = FALSE) + ylab(NULL) + scale_y_reverse() + 
  theme(plot.margin = unit(c(.1,.5,1,.8), "cm")) + 
  annotate("text", label = "Time spent", x = "1", y = 4) + geom_hline(yintercept = 1)
pBot

grid.arrange(pTop, pBot, heights = c(.5, .5), widths = c(0.5, 0.1))

यह मूल सुधार करने की भावना में सबसे अधिक लगता है, और मुझे यह विचार पसंद है। मैं मूल या तुम्हारा हालांकि मनमाना / इंद्रधनुष के रंग पसंद नहीं करता। अनुक्रमिक रंग सेट का प्रयास करें। उल्टा पट्टियाँ मेरे लिए भी काम नहीं करती हैं।
xan

मुझे लगता है कि अनुक्रमिक रंगों में सुधार हो सकता है - सुझाव के लिए धन्यवाद। दूसरी ओर, मुझे नहीं लगता कि रंग महत्वपूर्ण हैं क्योंकि हमारे पास मार्गदर्शन करने के लिए साप्ताहिक सीमांकक है (सोमवार का पहला दिन, मंगलवार दूसरा, आदि)। हम बैक-टू-बैक प्लॉट के बारे में समझौता कर रहे हैं, जैसा कि मैंने भी अपने जवाब में संकेत दिया था। उस भूखंड पर एक सुधार, दोनों ऊर्ध्वाधर अक्षों को उनके दैनिक साधनों के अनुसार स्केल करने के लिए हो सकता है। इससे हफ्तों और पेजों के बीच तुलना / रीडिंग आसान हो जाएगी।
8

अब जब रंगों के महत्वहीन होने का उल्लेख है, तो मेरे साथ ऐसा होता है कि रंग भिन्नता को हटाने से काम चल सकता है। सप्ताह के दिन पहले से ही स्थान से अलग हो जाते हैं। या हो सकता है कि बुधवार को एक अतिरिक्त लंगर के रूप में एक अलग छाया बना रहा हो।
क्ष्ण

बहुत अच्छा! मैं अभी तक अन्य उत्तरों से नहीं गुजरा, लेकिन यह निश्चित रूप से पहले से ही एक महान सुधार है! बहुत बहुत धन्यवाद

1
मैंने टिप्पणियों से विचारों को शामिल करने के लिए उत्तर संपादित किया है। @ एक चुनौती के अनुसार, मुझे खुशी है कि आप इसे मददगार पाएंगे।
11

1

परिवर्तन एक्स सप्ताह के दिनों के लिए अक्ष, चलो y वही और:

  1. दो सप्ताह के साथ डेटा को समूह चर के रूप में प्लॉट करें - ताकि प्रत्येक सप्ताह के लिए दो अलग-अलग लाइनें मिलें,
  2. या समूहीकृत बार भूखंडों का उपयोग करें जहां प्रत्येक सप्ताह के दिन के लिए आपके पास सप्ताह 1 और सप्ताह 2 के लिए दो बार हैं, प्रत्येक दिन प्रति दिन पृष्ठों / घंटों की गिनती के साथ है।

कृपया देखें कि 1. क्या करता है, और 2. दुर्भाग्य से बहुत सार्थक नहीं दिखता है। आपके उत्तर के लिए धन्यवाद।

मुझे इसमें कोई समस्या नहीं है ... यह अच्छा नहीं लगता है लेकिन यह आपके द्वारा उपयोग किए जाने वाले सॉफ़्टवेयर और / या ग्राफ़िकल संपादन का मामला है।
टिम

1. आप वास्तव में नहीं बता सकते हैं कि क्या सप्ताह 1 या 2 बेहतर हो रहा है, और यदि कुछ और सप्ताह जोड़े गए तो यह बहुत अराजक हो जाएगा। 2. मैं वास्तव में इस पर बुरा नहीं मानता, यह वास्तव में काफी अच्छा है। शायद मैं इसे स्पष्ट करने के लिए मूल और यह एक साथ रख सकता था। (अभी ऊपर दिखाया गया है)

1

नीचे दिए गए कथानक स्टैक्ड बार के बजाय लाइनों का उपयोग करके प्रत्येक सप्ताह के भीतर अध्ययन के कुल घंटे और कुल पृष्ठ दिखाते हैं, जो उम्मीद करते हैं कि प्रत्येक सप्ताह के भीतर प्रवृत्ति को देखना और हफ्तों के बीच तुलना करना आसान होगा। मैंने जीरो के साथ लापता हफ्तों में भर दिया है, लेकिन यदि आप चाहें तो आप उन्हें बाहर कर सकते हैं। Rडाटा प्रोसेसिंग और साजिश पीढ़ी के लिए कोड ग्राफ़ के नीचे पोस्ट किया जाता है।

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

नीचे दिए गए चरणों को पूरा करने में, मैंने पहली बार प्रश्न में पोस्ट किए गए डेटा को डेटा फ्रेम में लोड किया dat

library(lubridate)
library(dplyr)
library(reshape2)
library(ggplot2)
library(scales)

# Ordered vector of weekdays
weekdayVec = c("Sunday","Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")

# Change column name
names(dat)[2] = "Hours of Study"

# Convert Date to date format
dat$Date = as.Date(dmy(dat$Date))

# Add a weekday variable and order from Sunday to Saturday
dat$Day = weekdays(dat$Date)
dat$Day = factor(dat$Day, levels=weekdayVec)

# Number the weeks from 1 to 11 and convert to a factor
dat$Week = paste("Week", (as.numeric(dat$Date) - as.numeric(dat$Date[3])) %/% 7 + 2)
dat$Week = factor(dat$Week, levels=paste("Week", c(1:11))) 

## Fill in empty dates (so we can show zero pages/hours during weeks 5 and 6 if we want)
dataFill = expand.grid(Week = paste("Week",1:11), Day=weekdayVec)
dat = merge(dataFill, dat, by=c("Week","Day"), all=TRUE)

# Fill in missing dates
dat$Date = as.Date(c(rep(NA,5), seq(as.Date("2014-11-21"),as.Date("2015-01-30"),1), NA))

# Convert missing data to zeros for Hours of Study and Total Pages
dat = dat %>% mutate(`Hours of Study` = ifelse(is.na(`Hours of Study`), 0, `Hours of Study`),
               `Total Pages` = ifelse(is.na(`Total Pages`), 0, `Total Pages`)) 

# Melt data into long format (for facetting in ggplot2)
dat.m = dat %>% melt(id.var=1:3) %>%
  group_by(Week, variable) %>%
  mutate(cumValue = cumsum(value))

# Plot Hours and Pages by date, with separate cumulative 
# curves for each week
ggplot(dat.m %>% group_by(Week, variable) %>% arrange(Week, Day), 
       aes(Date, cumValue, colour=Week, group=Week)) +
  geom_vline(xintercept=as.numeric(seq(as.Date("2014-11-16"), as.Date("2015-02-06"), 7)-0.5), colour="grey70") +
  geom_line(position=position_dodge(width=0.5)) +
  geom_point(size=2.5, position=position_dodge(width=0.5)) +
  facet_grid(variable ~ ., scales="free_y") +
  guides(colour=guide_legend(reverse=TRUE)) + labs(y="",x="") +
  guides(colour=FALSE) +
  scale_x_date(limits=c(as.Date("2014-11-16"),as.Date("2015-01-31")),
               breaks=seq(as.Date("2014-11-16"),as.Date("2015-01-31"), 7)-0.5,
               labels=paste("                  Week",1:11)) +
  theme_grey(base_size=15)

यह वास्तव में एक अच्छा विचार है और निश्चित रूप से इस समस्या को हल करना मुश्किल है कि आप किस दिन देख रहे हैं। धन्यवाद

0

एक अन्य विकल्प बुलबुला चार्ट है, जहां आप एक चर के लिए ऊर्ध्वाधर ऊंचाई और दूसरे के लिए डॉट आकार रख सकते हैं। नीचे, तिथि (दिन) क्षैतिज है, अध्ययन किया गया घंटे लंबवत है, प्रति दिन कवर किए गए पृष्ठ बुलबुले के आकार के हैं, और सप्ताह रंगीन है।

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


0

आप 3 डी में साजिश कर सकते हैं। मैंने यह सत्यापित नहीं किया कि सप्ताह के दिन की गणना सही ढंग से की गई थी, सबसे अच्छा देखने का कोण, आदि ढूंढें, लेकिन यह आपको विचार देना चाहिए। इसके अलावा अलंकरण भी संभव हैं। उदाहरण के लिए, अंक को एक लाइन से जोड़ना और ग्रिडलाइंस को प्रत्येक सोमवार के अनुरूप स्थानांतरित करना बेहतर हो सकता है।

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

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

डेटा (आर में इनपुट करने के लिए):

dat<-structure(list(Date = structure(c(17L, 19L, 21L, 23L, 25L, 27L, 
29L, 31L, 33L, 38L, 2L, 14L, 36L, 42L, 44L, 46L, 48L, 34L, 39L, 
40L, 1L, 13L, 35L, 41L, 43L, 45L, 47L, 49L, 50L, 3L, 4L, 5L, 
6L, 7L, 8L, 9L, 10L, 11L, 12L, 15L, 16L, 18L, 20L, 22L, 24L, 
26L, 28L, 30L, 32L, 37L), .Label = c("1/1/2015", "1/12/2014", 
"10/1/2015", "11/1/2015", "12/1/2015", "13/01/2015", "14/01/2015", 
"15/01/2015", "16/01/2015", "17/01/2015", "18/01/2015", "19/01/2015", 
"2/1/2015", "2/12/2014", "20/01/2015", "21/01/2015", "21/11/2014", 
"22/01/2015", "22/11/2014", "23/01/2015", "23/11/2014", "24/01/2015", 
"24/11/2014", "25/01/2015", "25/11/2014", "26/01/2015", "26/11/2014", 
"27/01/2015", "27/11/2014", "28/01/2015", "28/11/2014", "29/01/2015", 
"29/11/2014", "29/12/2014", "3/1/2015", "3/12/2014", "30/01/2015", 
"30/11/2014", "30/12/2014", "31/12/2014", "4/1/2015", "4/12/2014", 
"5/1/2015", "5/12/2014", "6/1/2015", "6/12/2014", "7/1/2015", 
"7/12/2014", "8/1/2015", "9/1/2015"), class = "factor"), TotalHours = c(2.4166, 
0, 1.5833, 3.0166, 2.4999, 1.4833, 3.0499, 0, 2.4499, 2.8833, 
0, 4.1166, 1.3333, 1.2499, 1.6666, 0, 2.4833, 0, 1.2332, 0.3333, 
3.5666, 0.8166, 2.75, 0.4166, 1.2833, 0.3333, 0, 0, 2.35, 0.5666, 
0, 1.6666, 2.2666, 2.5165, 2.0166, 2.9666, 0.8333, 0.6666, 1.45, 
0.3166, 0, 0.2333, 0.85, 0, 0, 0.6666, 0.8333, 1.5498, 6.4159, 
2.9166), TotalPages = c(0L, 0L, 4L, 13L, 6L, 3L, 6L, 0L, 5L, 
2L, 0L, 8L, 5L, 3L, 8L, 0L, 9L, 0L, 1L, 0L, 2L, 0L, 28L, 0L, 
0L, 3L, 0L, 0L, 2L, 0L, 0L, 0L, 5L, 6L, 0L, 1L, 0L, 1L, 0L, 0L, 
0L, 0L, 2L, 0L, 0L, 4L, 1L, 5L, 9L, 0L)), .Names = c("Date", 
"TotalHours", "TotalPages"), class = "data.frame", row.names = c(NA, 
-50L))

साजिश करें:

#Get Day of Week
dat<-cbind(weekdays(as.Date(dat[,1], format="%d/%m/%Y")),dat)
colnames(dat)[1]<-"DoW"

#3D Plot
require(rgl)
plot3d(dat[,2],dat[,3],dat[,4],size=15, 
xlab=colnames(dat)[2], ylab=colnames(dat)[3],
zlab=colnames(dat)[4],col=rainbow(7)[as.numeric(dat[,1])])
text3d(x=10, y=6, z=seq(25,15,length=7),levels(dat[,1]),
col=rainbow(7), font=2)
grid3d(side=c("x", "y+", "z"), lwd=1)

-1

सप्ताह की संख्या (वर्ष का), सप्ताह के दिन और घंटों और पृष्ठों के लिए हीटमैप के बाद निम्नलिखित सहायक हो सकते हैं:

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

2 उच्च मूल्यों को हटाने से प्लॉट पर बेहतर रंग ग्रेडिएंट मिलते हैं:

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

निम्नलिखित बारचर्ट भी सहायक हो सकता है।

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

यह स्पष्ट रूप से 2 सप्ताह की अवधि दिखाता है जब कोई काम नहीं किया गया था।

लाइनों के साथ प्लॉट भी उपयोगी हो सकते हैं (लाइनों को क्लॉट नहीं किया जाता है; केवल दो लाइन रखते हुए अंक भी निकाले जा सकते हैं)

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

वे आसानी से समझ के लिए साजिश को सरल करते हुए जानकारी को स्पष्ट करते हैं।

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