मैं (plotly
में) एक स्कैटरप्लॉट बनाने की कोशिश कर रहा हूं जो एक ही श्रृंखला के बिंदुओं को दो (या तीन) सौंदर्यशास्त्र - रंग, आकार, आकार से अलग करता है। आखिरकार उद्देश्य तीन सौंदर्यशास्त्रों में से किसी एक का उपयोग करके पौराणिक कथाओं के माध्यम से बिंदुओं के समूहों को टॉगल करने में सक्षम होना है। यह एक सौंदर्य के लिए अच्छी तरह से काम करता है।प्लॉटली का उपयोग करके स्कैटर प्लॉट में रंग/आकार/आकार को एक साथ कैसे लागू करें?
[जोड़ा गया 2016/06/20] वांछित इंटरैक्टिव व्यवहार पर विस्तार करने के लिए: विचार, है एक बार आंकड़ा दिखाया गया है, किंवदंतियों में से किसी पर क्लिक करके अंक के समूहों टॉगल करने के लिए सक्षम होने के लिए। उदाहरण के लिए (नीचे नमूना डेटा में), अगर मैं पौराणिक कथाओं में y
पर क्लिक करना चाहता था, तो यह सभी श्रृंखलाओं से अंक # 4, 5 और 10 छुपाएगा/दिखाएगा। यदि A
पर कोई क्लिक है, तो टॉगल पॉइंट # 1, 2 और 8. वास्तविक जीवन उपयोग के मामले के रूप में - क्षैतिज धुरी पर परिपक्वता और ऊर्ध्वाधर पर मूल्य के साथ बॉन्ड की कीमतें सोचें। बांड उत्पत्ति, क्रेडिट रेटिंग और अंक आकार के देश द्वारा विशेषता है। इसलिए यदि मैं क्रेडिट रेटिंग "ए" पर क्लिक करता हूं, तो मुझे छुपाया जाने वाला आकार और मूल के देश के बावजूद सभी ए-रेटेड मुद्दे चाहिए। वर्तमान में वे केवल रेटिंग से संबंधित ट्रेस से छिपाए गए हैं। निशान में अंक जो अन्य विशेषताओं को दर्शाते हैं (आकार & देश) दिखाया गया है। नीचे दिए गए विस्तृत उत्तर को देखते हुए, मैं इसे plotly
की साइट पर एक सुविधा अनुरोध के रूप में पोस्ट करने के इच्छुक हूं।
मैं plotly
के लिए सवाल तैयार किए गए हैं, लेकिन इस व्यवहार अपेक्षाकृत कम दर्द के स्तर के साथ आर से दूसरे पैकेज/पुस्तकालय में प्राप्त किया जा सकता है, तो (जिसका अर्थ है कोई कस्टम जावास्क्रिप्ट या की तरह), मुझे लगता है कि बहुत स्वीकार करेंगे एक जवाब के रूप । [अंत संपादित करें]
स्थिर हिस्सा आसानी से (अन्तरक्रियाशीलता के लिए) ggplot2
में किया जाता है, लेकिन मैं plotly
में इसे पुन: नहीं कर सकते हैं, यहां तक कि ggplotly()
का उपयोग कर। यकीन नहीं है कि यह संभव है, लेकिन सोचा कि मैं पूछूंगा। नमूना डेटा & नीचे कोड।
(संभवतः Using 2+ legends from R to plotly/plot.ly से संबंधित)
कुछ डमी डेटा जनरेट करें:
library(data.table)
library(plotly)
library(ggplot2)
DT <- data.table(
x = c(1:10), y = 1:10/2,
gr1 = c("A", "A", "B", "C", "D", "D", "B", "A", "E", "E"),
gr2 = c("x", "x", "x", "y", "y", "z", "z", "x", "x", "y"),
gr3 = c(1,2,2,1,3,4,1,2,2,1)
)
ggplot()
संस्करण इस तरह लग रहा है, और मैं में plotly प्राप्त करना चाहते हैं क्या है:
p <- ggplot(data = DT) + geom_point(aes(x = x, y = y, color = gr1, shape = gr2, size = gr3))
p
पौराणिक कथाओं में मानदंड के तीन समूह हैं, और अंक अलग-अलग रंग, आकार और आकार हैं।
ggplotly(p)
कॉलिंग चेतावनी के एक झुंड उत्पन्न करता है:
Warning messages:
1: In if (s == Inf) { :
the condition has length > 1 and only the first element will be used
2: In if (s == Inf) { :
the condition has length > 1 and only the first element will be used
3: In if (s == Inf) { :
the condition has length > 1 and only the first element will be used
4: In if (s == Inf) { :
the condition has length > 1 and only the first element will be used
5: In if (s == Inf) { :
the condition has length > 1 and only the first element will be used
6: In if (s == Inf) { :
the condition has length > 1 and only the first element will be used
7: In if (s == Inf) { :
the condition has length > 1 and only the first element will be used
8: In if (s == Inf) { :
the condition has length > 1 and only the first element will be used
और यह आंकड़ा पैदा करता है:
plot_ly()
उपयोग करने के लिए कोशिश कर रहा है, मैं निम्नलिखित हो:
plot_ly(data = DT, x = x, y = y, color = gr1, symbol = gr2, type = "scatter", mode = "markers", marker = list(size = 10 * gr3)) # size is multiplied by 10, in plotly it is in pixels
समस्या रंग के पार की बजाय समस्या के बीच में सबसे स्पष्ट है, अलग-अलग रंगों में कई आकार एक-दूसरे पर आच्छादित होते हैं। चूंकि यह एकमात्र बिंदु है, इसलिए मुझे एक रंगीन आकार की उम्मीद है, जैसा कि ggplot
में है। साजिश में, 'रंग', 'प्रतीक' और 'आकार' तर्क एक नया निशान बनाते हैं?
मैं अभी भी plotly
पर काफी नया हूं, इसलिए मुझे कुछ स्पष्ट याद आ रही है।
ऊपर दिए गए R 3.2.2
का उपयोग विंडोज के तहत plotly_2.0.16
और ggplot2_2.0.0
के साथ किया जाता है।
दिलचस्प जवाब के लिए धन्यवाद, "अब तक बाहर समताप मंडल में" एक महान स्पर्श :) यह एक बड़ी हद तक (नष्ट कर देता है कथा पर क्लिक करने के लिए दृश्य हिस्सा हल करने के लिए प्रकट होता है है प्रभाव, क्योंकि यह पिछले लोगों पर एक और आकार प्लॉट करता है)। हालांकि, मूल प्रश्न अंतःक्रियाशीलता (पहली वाक्य में) था - जो काम नहीं कर रहा है। विचार यह है कि, यदि मैं किंवदंतियों में 'सी', 'y' या' 1' पर क्लिक करता हूं तो बिंदु # 4 (x = 4, y = 2.0) गायब हो जाता है। इसे सभी तीन श्रृंखलाओं से संबंधित बिंदु छिपाना होगा, जो मुझे यकीन नहीं है कि स्टॉक 'प्लॉटली 'में संभव है। – Peter
यदि आप अंक को ओवरप्लॉट करने के लिए किंवदंती पर क्लिक नहीं करना चाहते हैं (यह दृश्यता स्थिति को प्रभावी ढंग से टॉगल करता है), तो प्रत्येक पौराणिक कथाओं के लिए केवल समताप मंडल विधि का उपयोग करें। यदि आप इससे अधिक जटिल व्यवहार चाहते हैं, तो शुभकामनाएं ... संदेह है कि आप इसे साजिश में कर सकते हैं। – dww
हां, मुझे लगा कि मैं बहुत ज्यादा चाहता हूं :) यदि वे मौजूद हैं, तो मैं इसे अन्य पैकेज/पुस्तकालयों के लिए सुझावों के लिए खोल सकता हूं। फिर से धन्यवाद - भले ही मैं इस तत्काल प्रश्न का उत्तर स्वीकार नहीं कर सकता, फिर भी मैंने एक उपयोगी चाल सीख ली। – Peter