จะสร้างคำอธิบายแผนภูมิฮิสโตแกรมใน QGIS ได้อย่างไร


14

ฉันพบโพสต์บล็อกนี้แล้วในขณะที่มองหาวิธีสร้างกราฟ (ฮิสโตแกรม) ในผู้แต่งสิ่งพิมพ์

คุณสมบัติที่ฉันต้องการทำซ้ำจากบล็อกคือการวาดรูปสี่เหลี่ยมคงที่ใน qgis ผู้แต่งงานพิมพ์แล้วปรับขนาดตามค่าฟิลด์ในกรณีนี้เป็นแถบบนฮิสโตแกรม

ดังนั้นการสร้างคำอธิบาย / ฮิสโตแกรม

ฉันสามารถทำตามบทช่วยสอนนี้ได้ แต่ฉันอยากรู้ว่าก) มีวิธีที่ง่ายกว่าในการสร้างกราฟที่ฉันต้องการใน matplotlib และนำเข้ารูปภาพหรือ b) ฟังก์ชันนี้จะถูกสร้างขึ้นเพื่อ qgis ในรุ่นอนาคต

ป้อนคำอธิบายรูปภาพที่นี่

คำตอบ:


8

ฉันเคยเห็นบล็อกโพสต์เช่นกันและสงสัยในสิ่งเดียวกัน!

คุณสามารถใช้HTML เฟรมและไลบรารี D3ถ้าคุณไม่สนใจการทำจาวาสคริปต์

นี่คือตัวอย่างที่ฉันเขียนโค้ด คุณสามารถแทรกนิพจน์ QGIS ลงในแหล่งหน้าของคุณ (จาก QGIS 2.14 หรือใหม่กว่า)

ตัวอย่างของ d3 html frame ใน qgis print composer

ในกรณีของฉันฉันได้บันทึกไฟล์ html ไว้ในเครื่องแล้วแฮ็กมันจนกว่าฉันจะแสดงมันโดยใช้เครื่องมือสำหรับนักพัฒนาของเบราว์เซอร์

เมื่อคุณทำงานแล้วคุณควรจะสามารถวางแหล่งที่มาของหน้าลงในกล่องข้อความ 'แหล่งที่มา' โดยตรงและวางนิพจน์ QGIS ใน (เช่นค่าฟิลด์ตัวแปร ฯลฯ ) โดยใช้Insert an expressionปุ่ม

ฉัน cobbled กันตัวอย่างเช่นว่าจากalignedleft.com บทช่วยสอนนี้มีประโยชน์เนื่องจากจะแสดงวิธีสร้างแผนภูมิแท่งจากรายการแบบง่าย ตัวอย่างส่วนใหญ่ที่ฉันเคยเห็นใช้ไฟล์ TSV แยกกัน

Bl.ocks.orgมีตัวอย่างจำนวนมาก

คุณสามารถรับรหัสสำหรับบทเรียน AlignedLeft ได้ที่นี่ใน GitHub

นี่อาจเป็นปลั๊กอินที่ดี ... ฉันเห็นว่ามีปลั๊กอิน d3 อยู่สองตัวถึงแม้ว่าฉันจะไม่ได้ลองเลย


2

DataPlotlyปลั๊กอินจะได้รับมี

แทนที่จะปรับขนาดสี่เหลี่ยมโดยใช้ค่าร้อยละจากเขตข้อมูลที่คำนวณล่วงหน้าโดยใช้เครื่องมือภายนอก (Excel ถูกใช้ในการโพสต์บล็อกที่เชื่อมโยง) DataPlotly ช่วยให้คุณสามารถคำนวณฮิสโตแกรมของคุณลักษณะ Atlas ได้โดยตรง:

ฉันได้เพิ่ม XML การกำหนดค่าสำหรับวัตถุ DataPlotly ในตอนท้ายของคำตอบนี้

ในฮิสโทแกรม Plotly แถบทั้งหมดมีสีเดียวกัน เพื่อให้ได้แถบสีที่แตกต่างกันฉันต้อง mangle วัตถุคำอธิบาย (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: เสร็จแล้ว! ขอบคุณสำหรับการทำงานหนักทั้งหมดของคุณในปลั๊กอินที่มีประโยชน์สุดยอดนี้!
Jake

ดีใจที่หลายคนพบว่า DataPlotly มีประโยชน์!
matteo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.