QGIS प्रिंट कंपोजर में हिस्टोग्राम किंवदंती कैसे बनाएं?


14

प्रिंट कंपोजर में एक ग्राफ (हिस्टोग्राम) को गतिशील रूप से बनाने के लिए रास्ता खोजते हुए मुझे यह ब्लॉग पोस्ट मिला है ।

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

इस प्रकार एक किंवदंती / हिस्टोग्राम बनाना

मैं इस ट्यूटोरियल का अनुसरण कर सकता हूं लेकिन मैं उत्सुक था अगर a) मैटलपोटलिब में ग्राफ़ की आवश्यकता के बाहर एक आसान तरीका था और एक छवि या बी आयात कर रहा था) यह कार्यक्षमता भविष्य के संस्करणों में qgis में निर्मित होने वाली थी।

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

जवाबों:


8

मैंने उस ब्लॉग पोस्ट को भी देखा है, और वही बात सोच रहा हूँ!

यदि आप जावास्क्रिप्ट का थोड़ा सा भी बुरा नहीं मानते हैं, तो आप HTML फ्रेम्स और डी 3 लाइब्रेरी का उपयोग कर सकते हैं ।

यहाँ एक उदाहरण है जिसे मैंने हार्ड-कोड किया है। आप अपने पृष्ठ स्रोत (QGIS 2.14 या उसके बाद से) में QGIS एक्सप्रेशन सम्मिलित कर सकते हैं)

छग प्रिंट कंपोजर में d3 html फ्रेम का उदाहरण

मेरे मामले में, मैंने HTML फ़ाइल को स्थानीय रूप से सहेजा है और इसे तब तक हैक किया जब तक कि मुझे यह प्रदर्शित नहीं हो गया, ब्राउज़र के डेवलपर टूल का उपयोग करके।

एक बार आपके पास यह काम करने के बाद, आपको Insert an expressionबटन का उपयोग करके पेज स्रोत को सीधे 'स्रोत' टेक्स्ट बॉक्स में पेस्ट करना चाहिए, और QGIS के भाव (जैसे फ़ील्ड मान, चर आदि) को छोड़ना चाहिए ।

मैं एक साथ cobbled कि examplele.com से उदाहरण । यह ट्यूटोरियल उपयोगी है क्योंकि यह दिखाता है कि सरल सूचियों से बार चार्ट कैसे बनाया जाए; अधिकांश उदाहरण मैंने अलग TSV फ़ाइलों का उपयोग करते हुए देखे हैं।

Bl.ocks.org के उदाहरणों का एक बहुत बड़ा समूह है।

GitHub पर आप यहां AlignLeft ट्यूटोरियल्स के लिए कोड प्राप्त कर सकते हैं

यह एक अच्छा प्लगइन बना सकता है ... मुझे लगता है कि वहाँ पहले से ही d3 प्लगइन्स के एक जोड़े हैं, हालांकि मैं उन्हें कोशिश करने का मौका नहीं मिला है - एक नज़र शायद लायक?


2

DataPlotly प्लगइन वहाँ हो रही है।

बाह्य उपकरण (Excel द्वारा लिंक किए गए ब्लॉग पोस्ट में उपयोग किया गया था) का उपयोग करके पहले से फ़ील्ड के प्रतिशत मानों का उपयोग करके आयतों को स्केल करने के बजाय, DataPlotly आपको सीधे एटलस सुविधाओं के हिस्टोग्राम्स की गणना करने की अनुमति देता है:

मैंने इस जवाब के अंत में DataPlotly ऑब्जेक्ट के लिए कॉन्फ़िगरेशन XML जोड़ा है।

प्लॉटली हिस्टोग्राम में सभी पट्टियों का रंग एक जैसा होता है। व्यक्तिगत रूप से रंगीन पट्टियाँ प्राप्त करने के लिए, मुझे एक लेजेंड ऑब्जेक्ट (10 कॉलम, मैनजेंड एंट्री टेक्स्ट को स्पेस के साथ बदलना होगा, सभी रिक्ति को हटाना होगा, ध्यान से प्रतीकों की ऊंचाई और चौड़ाई को समायोजित करना होगा ...) और इसे हिस्टोग्राम के ऊपर रखें। "स्क्रीन" सम्मिश्रण मोड।

कुछ चीजें अभी तक DataPlotly का उपयोग करके काम नहीं करती हैं

  • अक्ष सीमा निर्दिष्ट करते समय क्षैतिज पट्टियाँ
  • हर पट्टी पर लेबल लगाना
  • लेबल फोंट समायोजित करना
  • ग्रिड लाइनों को हटाना / समायोजित करना

DataPlotly प्लगइन सक्रिय विकास के तहत है, इसलिए इनमें से कुछ मुद्दों को भविष्य में हल किया जा सकता है।


DataPlotly कॉन्फ़िगरेशन फ़ाइल configuration.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dataplotly>
<Option type="Map">
 <Option type="Map" name="dynamic_properties">
  <Option type="QString" name="name" value=""/>
  <Option name="properties"/>
  <Option type="QString" name="type" value="collection"/>
 </Option>
 <Option type="Map" name="plot_layout">
  <Option type="QString" name="additional_info_expression" value=""/>
  <Option type="QString" name="bar_mode" value="group"/>
  <Option type="double" name="bargaps" value="0"/>
  <Option type="bool" name="bins_check" value="true"/>
  <Option type="bool" name="legend" value="false"/>
  <Option type="QString" name="legend_orientation" value="h"/>
  <Option type="invalid" name="legend_title"/>
  <Option type="Map" name="polar">
   <Option type="Map" name="angularaxis">
    <Option type="QString" name="direction" value="clockwise"/>
   </Option>
  </Option>
  <Option type="Map" name="range_slider">
   <Option type="int" name="borderwidth" value="1"/>
   <Option type="bool" name="visible" value="false"/>
  </Option>
  <Option type="QString" name="title" value=""/>
  <Option type="invalid" name="x_inv"/>
  <Option type="double" name="x_max" value="10.5"/>
  <Option type="double" name="x_min" value="0.5"/>
  <Option type="QString" name="x_title" value=""/>
  <Option type="QString" name="x_type" value="linear"/>
  <Option type="invalid" name="xaxis"/>
  <Option type="invalid" name="y_inv"/>
  <Option type="invalid" name="y_max"/>
  <Option type="invalid" name="y_min"/>
  <Option type="QString" name="y_title" value=""/>
  <Option type="QString" name="y_type" value="linear"/>
  <Option type="QString" name="z_title" value=""/>
 </Option>
 <Option type="Map" name="plot_properties">
  <Option type="invalid" name="additional_hover_text"/>
  <Option type="int" name="bins" value="10"/>
  <Option type="QString" name="box_orientation" value="v"/>
  <Option type="bool" name="box_outliers" value="false"/>
  <Option type="bool" name="box_stat" value="false"/>
  <Option type="invalid" name="color_scale"/>
  <Option type="bool" name="color_scale_data_defined_in_check" value="false"/>
  <Option type="bool" name="color_scale_data_defined_in_invert_check" value="false"/>
  <Option type="QString" name="cont_type" value="fill"/>
  <Option type="QString" name="contour_type_combo" value="Fill"/>
  <Option type="bool" name="cumulative" value="false"/>
  <Option type="List" name="custom">
   <Option type="QString" value="IMDD15"/>
  </Option>
  <Option type="QString" name="hover_text" value="all"/>
  <Option type="QString" name="in_color" value="#000000"/>
  <Option type="bool" name="invert_color_scale" value="false"/>
  <Option type="QString" name="invert_hist" value="increasing"/>
  <Option type="QString" name="line_combo" value="Solid Line"/>
  <Option type="QString" name="line_dash" value="solid"/>
  <Option type="QString" name="marker" value="markers"/>
  <Option type="double" name="marker_size" value="10"/>
  <Option type="int" name="marker_symbol" value="0"/>
  <Option type="QString" name="marker_type_combo" value="Points"/>
  <Option type="double" name="marker_width" value="1"/>
  <Option type="QString" name="name" value="IMDD15"/>
  <Option type="QString" name="normalization" value=""/>
  <Option type="double" name="opacity" value="1"/>
  <Option type="QString" name="out_color" value="#ffffff"/>
  <Option type="QString" name="point_combo" value=""/>
  <Option type="bool" name="selected_features_only" value="false"/>
  <Option type="bool" name="show_colorscale_legend" value="false"/>
  <Option type="bool" name="show_lines" value="false"/>
  <Option type="bool" name="show_lines_check" value="false"/>
  <Option type="bool" name="show_mean_line" value="false"/>
  <Option type="bool" name="violin_box" value="false"/>
  <Option type="QString" name="violin_side" value="both"/>
  <Option type="bool" name="visible_features_only" value="true"/>
  <Option type="QString" name="x_name" value="IMDD15"/>
  <Option type="QString" name="y_name" value=""/>
  <Option type="QString" name="z_name" value=""/>
 </Option>
 <Option type="QString" name="plot_type" value="histogram"/>
 <Option type="QString" name="source_layer_id" value="london_IMD_2004_2010_2015_081015_v120160214112646566"/>
</Option>

1
DataPlotly का अद्भुत उपयोग! क्या आपको लगता है कि प्लगइन रिपॉजिटरी के कुछ मुद्दे खुले हैं, ताकि मैं देख सकूं और देख सकूं कि मैं क्या कर सकता हूं? github.com/ghtmtt/DataPlotly
matteo

@matteo: हो गया! इस सुपर उपयोगी प्लगइन पर अपने सभी कड़ी मेहनत के लिए धन्यवाद!
जेक

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