QGIS 인쇄 작곡가에서 히스토그램 범례를 만드는 방법은 무엇입니까?


14

내가 발견 한 이 블로그 게시물을 동적으로 인쇄 작곡가의 그래프 (히스토그램)을 구축하는 방법을 찾고있다.

블로그에서 복제하려는 기능은 qgis 인쇄 작곡가에 정적 사각형을 그린 다음이 경우 필드 값을 기준으로 히스토그램의 막대로 크기를 정합니다.

따라서 범례 / 히스토그램 생성

이 자습서를 따를 수는 있지만 a) matplotlib에서 필요한 그래프를 작성하고 이미지를 가져 오는 것보다 쉬운 방법이 있었는지 궁금합니다. b)이 기능이 향후 버전에서 qgis에 내장 될 예정입니다.

여기에 이미지 설명을 입력하십시오

답변:


8

그 블로그 게시물도 보았고 같은 것을 궁금해했습니다!

JavaScript를 조금이라도 신경 쓰지 않는다면 HTML 프레임D3 라이브러리를 사용할 수 있습니다 .

다음은 내가 하드 코딩 한 예입니다. QGIS Expressions를 페이지 소스에 삽입 할 수 있습니다 (QGIS 2.14 이상에서)

qgis 인쇄 작곡가의 d3 html 프레임의 예

필자의 경우 브라우저의 개발자 도구를 사용하여 html 파일을 로컬에 저장하고 표시 할 때까지 해킹했습니다.

작업이 완료되면 페이지 소스를 '소스'텍스트 상자에 직접 붙여넣고 Insert an expression버튼을 사용하여 QGIS 표현식 (예 : 필드 값, 변수 등)을 드롭 할 수 있어야 합니다.

나는 함께에서 그 예를 자갈길 alignedleft.com을 . 이 자습서는 간단한 목록에서 막 대형 차트를 작성하는 방법을 보여 주므로 유용합니다. 내가 본 대부분의 예는 별도의 TSV 파일을 사용합니다.

Bl.ocks.org 에는 매우 큰 예가 있습니다.

GitHub 에서 AlignedLeft 튜토리얼 코드를 얻을 수 있습니다.

이것은 좋은 플러그인을 만들 수 있습니다 ... 몇 가지 d3 플러그인이 이미 있지만 볼 수있는 기회는 없었지만 볼만한 가치가 있습니까?


2

DataPlotly의 플러그인이지고 있습니다.

DataPlotly를 사용하면 외부 도구를 사용하여 미리 계산 된 필드의 백분율 값을 사용하여 사각형을 스케일링하는 대신 (링크 된 블로그 게시물에 Excel이 사용됨) Atlas 기능의 히스토그램을 직접 계산할 수 있습니다.

이 답변 끝에 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 : 완료! 이 매우 유용한 플러그인에 대한 모든 노력에 감사드립니다!
Jake

많은 사람들이 DataPlotly가 유용하다는 것을 알게되어 기쁩니다!
matteo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.