फ्रेम, स्लाइडर्स और कुल्हाड़ियों के बिना, मैनीपुलेट से एक तस्वीर कैसे निकालें?

Dec 09 2020

मैं Manipulateएक स्लाइडर का उपयोग करने वाली कुछ तस्वीरें निकालना चाहता हूं , लेकिन जब मैं इसे पॉप-अप मेनू से करता हूं, तो मुझे इसके साथ सभी फ्रेम और स्लाइडर मिलते हैं। किसी दिए गए स्लाइडर मान के लिए हम चित्र (PNG, कहते हैं) को कैसे निर्यात कर सकते हैं (कहें$k = 0.5$, उदाहरण के लिए नीचे), मैनीपुलेट फ्रेम, स्लाइडर के बिना, और यहां तक ​​कि कुल्हाड़ियों और टिक्स के बिना?

और शायद मुश्किल: हम मैनीपुलेट जो दिखाते हैं उससे अधिक रिज़ॉल्यूशन वाले ग्राफिक्स कैसे निकाल सकते हैं? (पीएनजी प्रारूप में 1024 x 1024 पिक्सेल, नीचे 600 के कम रिज़ॉल्यूशन के बजाय)।

यहाँ एक सेमी-कूल MWE के साथ खेलना है:

Manipulate[
 ContourPlot[
  Cos[x + y] Sin[k x - 3 y],
  {x, -2, 2},
  {y, -2, 2},
  PlotPoints -> 20,
  PlotRange -> {{-2, 2}, {-2, 2}},
  Axes -> True,
  AxesOrigin -> {0, 0},
  AxesStyle -> Directive[GrayLevel[0.5]],
  AxesLabel -> {
    Style["X",  Bold, 14],
    Style["Y",  Bold, 14]
    },
  ColorFunction -> "Rainbow",
  ContourStyle -> Black,
  Contours -> Automatic,
  ImageSize -> 600
  ],
 {
  k, -5, 5, 0.1,
  ImageSize -> Large,
  Appearance -> {"Labeled", "Closed"},
  AppearanceElements -> {"InputField", "Slider"}
  },
 ControlPlacement -> Bottom,
 FrameMargins -> None,
 FrameLabel ->  {None, None, 
   Style["Some Funny Title", Bold, 14, FontFamily -> "Helvetica"]}
 ]

जवाब

7 MassDefect Dec 09 2020 at 03:15
Manipulate[
  plt = ContourPlot[
    Cos[x + y] Sin[k x - 3 y], 
    {x, -2, 2}, {y, -2, 2}, 
    PlotPoints -> 20, 
    PlotRange -> {{-2, 2}, {-2, 2}}, 
    Axes -> True, 
    AxesOrigin -> {0, 0}, 
    AxesStyle -> Directive[GrayLevel[0.5]], 
    AxesLabel -> {Style["X", Bold, 14], Style["Y", Bold, 14]}, 
    ColorFunction -> "Rainbow", 
    ContourStyle -> Black, 
    Contours -> Automatic, ImageSize -> 600
  ], 
  {k, -5, 5, 0.1, ImageSize -> Large, Appearance -> {"Labeled", "Closed"}, AppearanceElements -> {"InputField", "Slider"}}, 
  ControlPlacement -> Bottom, 
  FrameMargins -> None, 
  FrameLabel -> {None, None, Style["Some Funny Title", Bold, 14, FontFamily -> "Helvetica"]}
]

Export["~/Desktop/test.png", plt, ImageSize -> {1024, 1024}]

            (* or *)

Export["~/Desktop/test.png", plt, ImageResolution -> 300]

            (* EDIT *)

Export["~/Desktop/test.png", plt[[1]]//Graphics, ImageSize -> {1024, 1024}]

यह स्लाइडर सेटिंग द्वारा उत्पन्न फ्रेम को एक चर नाम से बचाता है plt। हर बार जब स्लाइडर बदलता है, pltतो अपडेट किया जाता है। फिर, मैं आमतौर पर Exportकमांड का उपयोग करता हूं ताकि मैं विभिन्न मापदंडों को आसानी से नियंत्रित कर सकूं। थोड़ा अलग: एक निर्यात पैरामीटर जो मुझे काफी पसंद है Background -> None। यहां वास्तव में प्रासंगिक नहीं है, लेकिन यह आपको बिना पृष्ठभूमि वाले पीएनजी छवियों को निर्यात करने की अनुमति देता है। अगर पोस्टर पृष्ठभूमि के साथ पर्याप्त विपरीत है, तो पोस्टर या प्रस्तुति में जोड़ते समय वास्तव में धीमा लगता है।

सिर्फ ग्राफिक्स बनाने के लिए ContourPlotमैंने पहले andre314 की विधि का उपयोग किया pltऔर इसे ग्राफिक में बदल दिया plt[[1]]//Graphics

इसके साथ उपरोक्त कोड का परिणाम ImageSize -> {1024, 1024}है:

ऊपर से अंतिम निर्यात विवरण का परिणाम है:

7 andre314 Dec 09 2020 at 03:19

संपादित करें

मैंने अपने पहले उत्तर की तुलना में कुछ सरल पाया है:

Settingएक सामान्य ग्राफिक प्राप्त करने के लिए हेरफेर पर लागू करें ।

फिर इस ग्राफ़िक के सभी विकल्पों को हटाने के लिए, एक तरीका यह है कि पहले भाग को फिर से लिया जाए Graphic

अंत संपादित करें

पुराने जवाब

आप मैनिपुलेट में स्नैपशॉट फ़ंक्शन का उपयोग कर सकते हैं।

फिर (यह आवश्यक नहीं हो सकता है) DynamicModuleद्वारा फिर से भरना With,
फिर इस का मूल्यांकन एक सामान्य देता है Graphics। इस ग्राफ़िक के सभी विकल्पों को हटाने के लिए, एक तरीका पहला भाग और फिर से लागू करना हैGraphic