QGIS baskı bestecisinde bir histogram açıklaması nasıl oluşturulur?


14

Bu blog gönderisini , baskı bestecisinde dinamik olarak bir grafik (histogram) oluşturmanın bir yolunu ararken buldum .

Blogdan çoğaltmak istediğim özellik, qgis baskı bestecisine statik dikdörtgenler çizmek ve daha sonra bunları bu durumda bir histogramdaki çubuklar olarak bir alan değerine göre boyutlandırmaktır.

Böylece bir efsane / histogram oluşturma

Bu öğreticiyi takip edebilirim ama sadece a) matplotlib'de ihtiyacım olan grafiği oluşturmanın ve bir görüntüyü içe aktarmanın daha kolay bir yolu olup olmadığını merak ettim veya b) bu ​​işlevsellik gelecek sürümlerde qgis'e inşa edilecekti.

resim açıklamasını buraya girin

Yanıtlar:


8

O blog gönderisini de gördüm ve aynı şeyi merak ettim!

Biraz JavaScript yapmanın sakıncası yoksa HTML Çerçevelerini ve D3 kütüphanesini kullanabilirsiniz .

İşte kodladığım bir örnek. Sayfa kaynağınıza QGIS İfadeleri ekleyebilirsiniz (QGIS 2.14 veya sonraki sürümlerden)

qgis baskı bestecisinde d3 html çerçevesi örneği

Benim durumumda, html dosyasını yerel olarak kaydettim ve tarayıcının geliştirici araçlarını kullanarak görüntüleyene kadar hackledim.

Çalıştırdıktan sonra, sayfa kaynağını doğrudan 'kaynak' metin kutusuna yapıştırabilmeniz ve Insert an expressiondüğmeyi kullanarak QGIS ifadelerini (alan değerleri, değişkenler vb.) İçine bırakabilmeniz gerekir .

Bu örneği alignleft.com'dan bir araya getirdim . Bu öğretici, basit listelerden çubuk grafikler oluşturmayı gösterir; gördüğüm çoğu örnek ayrı TSV dosyaları kullanıyor.

Bl.ocks.org'un çok büyük örnekleri var.

GitHub'da AlignedLeft öğreticilerinin kodunu buradan alabilirsiniz

Bu iyi bir eklenti yapabilir ... Onları denemek için bir şansım olmasa da, zaten birkaç d3 eklentisi olduğunu görüyorum - belki de bir göz atmaya değer mi?


2

DataPlotly eklentisi var olmaktadır.

Harici bir araç kullanılarak önceden hesaplanmış bir alandaki yüzde değerlerini kullanarak dikdörtgenleri ölçeklemek yerine (bağlı blog yayınında Excel kullanıldı), DataPlotly Atlas özelliklerinin histogramlarını doğrudan hesaplamanıza olanak tanır:

Bu yanıtın sonunda DataPlotly nesnesi için yapılandırma XML'i ekledim.

Grafik histogramlarda tüm çubuklar aynı renge sahiptir. Tek tek renkli çubuklar elde etmek için, bir efsane nesnesini (10 sütun, tüm efsane giriş metinlerini boşluklarla değiştirmeli, tüm boşlukları kaldırmalı, sembollerin yüksekliğini ve genişliğini dikkatlice ayarlamalıydım, ...) ve "Ekran" karıştırma modu.

Bazı şeyler DataPlotly kullanarak henüz çalışmıyor

  • Eksen sınırlarını belirtirken yatay çubuklar
  • Her çubuğu etiketleme
  • Etiket yazı tiplerini ayarlama
  • Izgara çizgilerini çıkarma / ayarlama

DataPlotly eklentisi aktif geliştirme aşamasındadır, bu nedenle bu sorunların bazıları gelecekte çözülebilir.


DataPlotly yapılandırma dosyası 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 harika kullanımı! Eklenti deposunun bazı sorunlarını açabilir misiniz, böylece bir göz atabilir ve ne yapabileceğimi görebilir miyim? github.com/ghtmtt/DataPlotly
matteo

@matteo: Tamam! Bu süper kullanışlı eklentideki tüm sıkı çalışmanız için teşekkürler!
Jake

Birçok insanın DataPlotly'yi yararlı bulmasına sevindim!
matteo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.