2011-04-21 19 views
10

कल, "Optimally picking one element from each list" प्रश्न में कुछ समय के प्लॉट जोड़ने के दौरान, मुझे एक बार कुछ साल पहले ("Keeping plot annotations after regenerating a plot") मैथ ग्रुप पोस्टिंग के बारे में याद किया गया था।साजिश साजिश एनोटेशन

जब मैंने सोचा कि कुछ धुरी लेबल अच्छे होंगे तो मैं खुशी से अपने भूखंडों (मैन्युअल रूप से) को एनोटेट कर रहा था। समस्या यह है कि, अक्ष लेबलों के साथ भूखंडों को पुन: उत्पन्न करने से आपके मैन्युअल एनोटेशन नष्ट हो जाएंगे। Rest[pic[[1, 1]]], इसलिए यदि आप pic2 के रूप में भूखंड को पुनर्जीवित तुम वापस अगर आप का उपयोग अपनी टिप्पणियों को प्राप्त कर सकते हैं:

Insert[pic2, Rest[pic[[1, 1]]], {1, 1}] 

मुझे याद है डेविड पार्क (

यह आप एक साजिश नामित पिक यहाँ में उपयोगकर्ता जोड़ पा सकते हैं प्रकट होता है प्रस्तुति पैकेज के लेखक) मैन्युअल एनोटेशन के जोरदार विरोध का विरोध किया जा रहा है। मैंने खुद को कुछ प्रोग्रामेटिक लेबलिंग किया है, लेकिन कभी-कभी प्रोग्राम नियंत्रण के तहत लेबल डालना बहुत मुश्किल है, जैसे कि (मुझे लगता है कि मुझे PlotLegends बहुत पसंद नहीं है, खासकर क्योंकि कुछ रंग एक-दूसरे के करीब हैं):

top-answerers

प्लॉट मूलों को फेंकने से पहले से ही मेरे क्लेज के लिए बहुत देर हो चुकी थी, लेकिन मुझे आश्चर्य है कि इस मुद्दे पर विचार की वर्तमान स्थिति क्या है।

  • क्या ऐसा करने के बेहतर तरीके हैं?
  • यह विधि कितनी सामान्य है? क्या यह सभी साजिश और चार्ट प्रकारों में काम करता है?
  • क्या यह सभी संस्करणों में काम करता है? (5.2 से ऊपर)
  • प्लॉट्स में उपयोगकर्ता परिवर्धनों को संभालने में सुधार करने के लिए कोई भी डब्लूआरआई योजना है?

बीटीडब्ल्यू मेरे गणित समूह में चाल ऊपर दिखाए गए एक से अलग है और शीर्ष 10 साजिश में उपयोग की जाती है। सिद्धांत वही है, यद्यपि।


संपादित

मैं Mathematica Toolbag में ऊपर की तरह इतना डेटा भूखंडों बनाने के लिए कोड रखा।

संपादित

कोड अब ब्रेट चैंपियन द्वारा अधिक उपयुक्त सवाल के लिए ले जाया जाता है: How do I access the StackOverflow API from Mathematica

+3

+100! मैं लगभग विश्वास करता हूं कि सवाल सिर्फ साजिश दिखाने के लिए एक बहाना था .... – Simon

+0

मैं साइमन से सहमत हूं! आपको डेटा कहां मिलेगा? –

+0

@belisarius और @Mark, शायद [डेटा एक्सप्लोरर] (http://data.stackexchange.com/) से और शीर्ष 10 गणित के उत्तरदाताओं को पकड़ लिया। अफसोस की बात है, मैं उस सूची में होने के लिए पर्याप्त प्रश्नों का उत्तर नहीं देता ... श्वास। – rcollyer

उत्तर

4

एक विधि, जो थोड़ा बदसूरत है लेकिन मामूली साजिश एनोटेशन के लिए उचित रूप से ठीक काम करता प्रतीत होता है, निम्नलिखित है।

Drawings tools के माध्यम से एनोटेशन जोड़ने के बाद, अतिरिक्त जानकारी ग्राफिक के साथ संग्रहीत की जाती है और उदाहरण के लिए, ग्राफिक ब्रैकेट का चयन करके और Show Expression (मैक पर Shift-Command-E) का उपयोग करके निरीक्षण किया जा सकता है। अतिरिक्त जानकारी को आमतौर पर कट-एंड-पेस्ट द्वारा या Cases का उपयोग करके चुना जा सकता है, और फिर Epilog का उपयोग करके नए संशोधित प्लॉट में जोड़ा जा सकता है।

उदाहरण

Plot[Sin[x], {x, 0, 6 \[Pi]}] 

कुछ ही एनोटेशन जोड़ने के लिए निम्न देता है:

enter image description here

ऊपर छवि को नाम plotgraphic असाइन करना वर्तमान जोड़ा एनोटेशन के साथ एक नए संशोधित साजिश उत्पन्न किया जा सकता है निम्नानुसार (उदाहरण के लिए)

Labeled[Plot[Sin[x], {x, 0, 8 \[Pi]}, 
    Epilog -> Rest[Cases[plotgraphic, _List][[1]]]], "Sine Plot"] 

enter image description here

दे रही है यह कम से कम कहने के लिए अजीब हो सकता है, और विधि में कोई संदेह नहीं सुधार किया जा सकता। यह शायद दूसरों के पहले से ही क्या करता है इसके साथ ही यह भी है। फिर भी, यह एक साजिश देता है जहां एनोटेशन 'प्रोग्रामेटिकली' मौजूद होते हैं, और जैसा कि किसी ने Epilog का उल्लेख नहीं किया है, मैंने फैसला किया कि यह पोस्टिंग के लायक हो सकता है। लॉग-प्लॉट के लिए

+1

आपको पहले प्लॉट को एक नाम असाइन करने की आवश्यकता नहीं है, इसके बजाय आप छवि को सीधे 'केस' कमांड – Simon

+0

@ सिमॉन धन्यवाद में कॉपी-पेस्ट कर सकते हैं। यह एक अच्छा है – tomd

5

व्यक्तिगत रूप से, मैं डेविड पार्क से सहमत एनोटेशन के कार्यक्रम संबंधी अलावा बेहतर है। यह गणित के भविष्य के संस्करणों के साथ और अधिक मजबूत और काम करने की संभावना है। मैं वास्तव में ड्रॉइंग टूल पैलेट को थोड़ा सा देखना चाहता हूं और परिणामस्वरूप Graphics ऑब्जेक्ट में अधिक स्पष्ट रूप से दिखाई देने वाले हाथों से जोड़े गए कई एनोटेशन देखना चाहते हैं। अगर वहाँ एक अक्रिय HeadAddedAnnotation या कुछ इस तरह की तरह थे, तो आप के माध्यम से

Cases[editedPic, _AddedAnnotation, Infinity] 

इन सभी संपादन प्रोग्राम के रूप में मिल सकता है यह है के रूप में, मैं अपने आप को छवि के InputForm के माध्यम से खुदाई खोजने के लिए और मैं कुछ नहीं कर रहा हूँ कि अपने Rest[pic[[1, 1]]] हमेशा काम करने जा रहा है, खासकर भविष्य के संस्करणों में।

+0

यह मैथ ग्रुप में मैंने जो प्रस्ताव दिया है, वैसे ही है, लेकिन मैंने इसे एक विकल्प में रखने का विचार किया: ग्राफिक्स [ {मूल साजिश सामग्री, उपयोगकर्ता क्रियाएँ}, प्लॉटरेंज-> स्वचालित, आदि ..., उपयोगकर्ता क्रियाएँ-> {ग्राफिक्सस्टफ, ग्राफिक्सस्टफ} ] –

संबंधित मुद्दे