DUICUO

Pyecharts のダイナミック チャートを 5 分で完全ガイド

[[393863]]

この記事は、wedo_experiment_junが執筆したWeChat公式アカウント「Python Chinese Community」からの転載です。転載の許可については、Python Chinese Community公式アカウントまでお問い合わせください。

1. 円グラフの紹介

pyechartsは、BaiduのオープンソースチャートコンポーネントechartsのPythonラッパーです。一般的に使用されるすべてのチャートコンポーネントをサポートしており、matlibplotベースのチャートライブラリとは異なり、pyechartsは動的なインタラクティブ表示をサポートしているため、複雑なデータチャートの表示に特に便利です。

  1. pipでpyechartsをインストールする

2. 円グラフの簡単な使い方

pyechartsは、棒グラフ、折れ線グラフ、円グラフ、散布図、ヒートマップ、ファネルチャート、レーダーチャート、箱ひげ図、マップなど、一般的に使用される基本的なグラフ表示をサポートしています。また、ダッシュボードやツリーダイアグラムもサポートしています。

  1. pyecharts.chartsから棒グラフ、折れ線グラフをインポート
  2. Pyechartsからoptsとしてオプションをインポート
  3. pyecharts.globalsからThemeTypeをインポート
  4.  
  5. 行 = (
  6. 行(init_opts=opts.InitOpts(theme=ThemeType.LIGHT、幅= '1000px' 、高さ= '300px' ))
  7. .add_xaxis([ "シャツ" , "セーター" , "シフォンブラウス" , "ズボン" , "ハイヒール" , "靴下" ])
  8. .add_yaxis( "商人A" , [5, 20, 36, 10, 75, 90])
  9. .add_yaxis( "商人B" , [15, 6, 45, 20, 35, 66])
  10. .set_global_opts(title_opts=opts.TitleOpts(title= "メインタイトル" , subtitle= "サブタイトル" )
  11. datazoom_opts=opts.DataZoomOpts(is_show= True ))
  12. .set_series_opts(label_opts=opts.LabelOpts(is_show= True ))
  13. 行.レンダリング( 'test.html' )
  14. line.render_notebook()

上記の簡単な例から、円グラフの使用には以下が含まれることがわかります。

  • テーマやサイズなど、アイコンタイプ(Line)自体の初期設定。
  • データのロード: x 軸データのロード、y 軸データのロードなど (複数のデータをロードできます)。
  • タイトル、領域ズーム (DataZoom)、ツールボックスなどのグローバル設定を構成します。
  • ラベル、線、スケールテキストの表示など、一連の設定を構成します。
  • アイコンは、レンダリングによってファイルが HTML ファイルとして保存されることを示しますが、Jupyter ノートブックをレンダリングすると、ファイルがノートブック内に直接表示されます。

3. 一般的な設定の使用法

円グラフでは、軸、凡例、データ ラベル、グリッド線、グラフのスタイル/色、さまざまなシリーズなど、対応するオプションでグラフの外観が構成されます。

  • InitOpts: 各チャートタイプの初期設定
  • set_global_opts: グローバルな外観設定
  • set_series_opts: シリーズ設定

皆さんにとっても私自身にとっても作業が楽になるように、視覚化には十分使える一般的な組み合わせをご紹介します。今すぐブックマークしてください!

  • InitOpts: テーマ、寸法、アニメーション効果
  • DataZoomOpts: 領域の折りたたみ。これは、日次時系列データなどの大規模なデータセットに特に便利です。ドラッグ&ドロップでグローバルデータとローカルデータを表示できます(明示的にドラッグするか、type_="inside" でドラッグ可能にするかを設定できます)。
  • タイトル設定 (TitleOpts): これはチャートの内容を説明するものであり、必須です。
  • LegendOpts 構成: これは、グラフ内のさまざまなデータ項目を説明します (この凡例はクリック可能で、特定の凡例項目のデータを個別に表示できるため、非常に便利です)。
  • TooltipOpts 構成: 凡例内の特定のポイントのデータを表示します。
  • x軸とy軸の座標軸のタイトルと説明(AxisOpts)
  • 座標スケール調整: 多数のスケールマーキングがあり、角度の変化などを表示できるアプリケーションに特に適しています。
  • マークポイント/マークライン: 重要なポイントを強調表示し、異なるセクションを区別するために使用される、グラフ用の特別なマーカー。
  1. pyecharts.chartsから棒グラフ、折れ線グラフをインポート
  2. Pyechartsからoptsとしてオプションをインポート
  3. pyecharts.globalsからThemeTypeをインポート
  4.  
  5. バー = (
  6. バー(init_opts=opts.InitOpts(theme=ThemeType.LIGHT,
  7. 幅 = '1000px'
  8. 高さ= '300px'
  9. animation_opts=opts.AnimationOpts(animation_delay=1000, animation_easing= "elasticOut" )
  10. .add_xaxis([ "シャツ" , "セーター" , "シフォンブラウス" , "ズボン" , "ハイヒール" , "靴下" ])
  11. .add_yaxis( "商人A" , [5, 20, 36, 10, 75, 90])
  12. .add_yaxis( "商人B" , [15, 6, 45, 20, 35, 66])
  13. .set_global_opts(title_opts=opts.TitleOpts(title= "メインタイトル" , subtitle= "サブタイトル" )
  14. toolbox_opts=opts.ToolboxOpts(is_show= False )、
  15. # datazoom_opts=opts.DataZoomOpts(is_show= True )
  16. datazoom_opts=[opts.DataZoomOpts(), opts.DataZoomOpts(type_= "inside" )],
  17. legend_opts=opts.LegendOpts(type_= "scroll" , pos_left= "50%" , orient= "vertical" ),
  18. xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15), name = "私はX軸です" ),
  19. yaxis_opts=opts.AxisOpts( name = "私はY軸です" , axislabel_opts=opts.LabelOpts(formatter= "{value} /月" )),
  20. tooltip_opts=opts.TooltipOpts(トリガー= "axis" 、 axis_pointer_type = "cross" )、
  21.  
  22. .set_series_opts(label_opts=opts.LabelOpts(is_show= False ),
  23. markpoint_opts=opts.MarkPointOpts(
  24. データ=[
  25. opts.MarkPointItem(type_ = "max" , name = "最大値" )
  26. opts.MarkPointItem(type_= "min" , name = "最小値" )
  27. opts.MarkPointItem(type_ = "平均" name = "平均値" )
  28. ]
  29. )、
  30. # 行をレンダリングします( 'test.html' )
  31. bar.render_notebook()

4. よく使われる複合チャート

よく使用される組み合わせチャートは次のとおりです。

  • 棒グラフや折れ線グラフなどの異なる種類のグラフを 1 つのグラフ (二重 Y 軸) に結合すると、主に、異​​なる指標間の相違点や相関関係を同じ観点から観察できるようになります。円グラフでは、これは重なり合いによって実現されます。
  1. Pyechartsからoptsとしてオプションをインポート
  2. pyecharts.chartsから棒グラフ、折れ線グラフをインポート
  3. pyecharts.fakerからFakerをインポート
  4.  
  5. v1 = [2.0、4.9、7.0、23.2、25.6、76.7、135.6、162.2、32.6、20.0、6.4、3.3]
  6. v2 = [2.6、5.9、9.0、26.4、28.7、70.7、175.6、182.2、48.7、18.8、6.0、2.3]
  7. v3 = [2.0、2.2、3.3、4.5、6.3、10.2、20.3、23.4、23.0、16.5、12.0、6.2]
  8.  
  9.  
  10. バー = (
  11. バー(init_opts=opts.InitOpts(幅= "680px" 、高さ= "300px" ))
  12. .add_xaxis(Faker.months)
  13. .add_yaxis( "蒸発" , v1)
  14. .add_yaxis( "降水量" , v2)
  15. .extend_axis(
  16. yaxis=opts.AxisOpts(
  17. axislabel_opts=opts.LabelOpts(formatter= "{value} °C" ), interval=5
  18. .set_series_opts(label_opts=opts.LabelOpts(is_show= False ))
  19. .set_global_opts(
  20. title_opts=opts.TitleOpts(title= "オーバーラップバー+線" ),
  21. yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(formatter= "{value} ml" )),
  22. tooltip_opts=opts.TooltipOpts(トリガー= "axis" 、 axis_pointer_type = "cross" )、
  23.  
  24. line = Line().add_xaxis(Faker.months).add_yaxis( "平均気温" , v3, yaxis_index=1)
  25. bar.overlap(線)
  26. bar.render_notebook()

実装の観点からは、

  • .extend_axisはy軸を追加します
  • 追加した折れ線グラフの軸座標を設定するときは、前の縦座標と一致するように yaxis_index を設定します。
  • 次に、`overlap bar.overlap(line)` を使用して 2 つの画像を重ね合わせます。

  • 複数のアイコンは、主にコントラストのためにグリッドにグループ化されます。円グラフでは、グリッド コンポーネントを使用してこれを実現します。
  1. Pyechartsからoptsとしてオプションをインポート
  2. pyecharts.chartsから棒グラフ、グリッドグラフ、折れ線グラフをインポート
  3. pyecharts.fakerからFakerをインポート
  4.  
  5. バー = (
  6. バー()
  7. .add_xaxis(Faker.choose())
  8. .add_yaxis( "商人A" , Faker.values ​​( ))
  9. .add_yaxis( "商人B" , Faker.values ( ))
  10. .set_global_opts(title_opts=opts.TitleOpts(title= "グリッドバー" ))
  11. 行 = (
  12. ライン()
  13. .add_xaxis(Faker.choose())
  14. .add_yaxis( "商人A" , Faker.values ​​( ))
  15. .add_yaxis( "商人B" , Faker.values ( ))
  16. .set_global_opts(
  17. title_opts=opts.TitleOpts(title= "グリッド線" , pos_top= "48%" ),
  18. legend_opts=opts.LegendOpts(pos_top= "48%" ),
  19.  
  20. グリッド = (
  21. グリッド(init_opts=opts.InitOpts(幅= "680px" 、高さ= "500px" ))
  22. . add (bar, grid_opts=opts.GridOpts(pos_bottom= "60%" ))
  23. . add (line, grid_opts=opts.GridOpts(pos_top= "60%" ))
  24. グリッド.render_notebook()

実装の観点から

  • 主な方法は、さまざまなグラフィックをグリッドに配置することです。
  • 各チャートの位置は、上、下、左、右の位置など、GridOpts を使用して設定されます。
  • グリッド内のグラフのタイトルと凡例は、グラフの位置に応じて配置する必要があることに注意してください (これは少し難しいので、少し調整する必要があります)。

5. 地図の使用

地図はデータの地理的分布を表示するために使用され、一般的な視覚化コンポーネントです。円グラフでは、これはMapクラスを使用して実装されています。注意すべき具体的な詳細は次のとおりです。

  • この地図は、中国地図(省レベル)、中国都市地図(市町村レベル)、世界地図、中国の省・都市地図、世界各国の国地図など、様々な種類の地図をサポートしています。github pyecharts/datasets/map_filename.json をご覧ください。
  • マップのデータ形式は (地理的位置、値) です (例: [['Guangdong', 76],['Beijing', 58]])。
  • visualmap_optsを使用してキーポイントを表示できます
  1. Pyechartsからoptsとしてオプションをインポート
  2. pyecharts.chartsからMapをインポート
  3. pyecharts.fakerからFakerをインポート
  4.  
  5. c1 = (
  6. 地図()
  7. . add ( "Merchant A" , [list(z) for z in zip(Faker.guangdong_city, Faker.values ( ))], "Guangdong" )
  8. .set_global_opts(
  9. title_opts=opts.TitleOpts(title= "地図-広東省地図" ), visualmap_opts=opts.VisualMapOpts()
  10.     
  11.  
  12. c2 = (
  13. 地図()
  14. . add ( "Merchant A" , [list(z) for z in zip(Faker.provinces, Faker.values ​​( ))], "china" )
  15. .set_global_opts(
  16. title_opts=opts.TitleOpts(title= "マップビジュアルマップ(連続)" ),
  17. visualmap_opts=opts.VisualMapOpts(max_=200),
  18.  
  19. # c1.render_notebook()
  20. c2.render_notebook()

6. 注目のチャートの使用

円グラフを学習しているうちに、グラフデータの変化を時間経過とともに動的に表示するものなど、興味深い(動的な表示)コンポーネントに出会いました。ここでその概要をご紹介します。

  • タイムライン: 複数のチャートを表示するタイムラインカルーセルです。まずタイムラインを宣言し、チャートを時系列順にタイムラインに追加します。再生ボタンをクリックすると、チャートを時系列順に表示できます。
  1. Pyechartsからoptsとしてオプションをインポート
  2. pyecharts.chartsからPie、Timelineをインポート
  3. pyecharts.fakerからFakerをインポート
  4.  
  5. 属性 = Faker.choose()
  6. tl = タイムライン()
  7. i が範囲(2015, 2020)の場合:
  8. パイ = (
  9. パイ()
  10. 。追加
  11. 商人A
  12. [list(z) for z in zip(attr, Faker. values ​​())],
  13. ローズタイプ= "半径"
  14. 半径=[ "30%" , "55%" ],
  15. .set_global_opts(title_opts=opts.TitleOpts( "ある店舗の年間売上高" .format(i)))
  16. tl. add (pie, "{}year" .format(i))
  17. tl.render_notebook()

  • ダッシュボード
  1. Pyechartsからoptsとしてオプションをインポート
  2. pyecharts.chartsからGaugeをインポート
  3.  
  4. c = (
  5. ゲージ()
  6. .add ( "" , [( "完了率" , 30.6)], radius= "70%" ,
  7. axisline_opts=opts.AxisLineOpts(
  8. ラインスタイルオプション=opts.LineStyleOpts(
  9. 色=[(0.3, "#67e0e3" ), (0.7, "#37a2da" ), (1, "#fd666d" )], 幅=30)
  10. )、
  11. title_label_opts=opts.LabelOpts(
  12. font_size=20、color= "blue" 、​​font_family= "Microsoft YaHei"  
  13. )、
  14. .set_global_opts(title_opts=opts.TitleOpts(title= "ゲージ - 基本例" ), legend_opts=opts.LegendOpts(is_show= False ),)
  15.  
  16. c.render_notebook()

7. その他のチャートの概要

上記の例では、地図、棒グラフ、折れ線グラフ、円グラフ、ダッシュボードを紹介しました。ここでは、pyecharts が提供するさらに多くの種類のグラフを紹介します。

  • レーダーチャート

  • ツリー図

  • ヒートマップ

  • カレンダー

  • 散布図

  • 3Dイメージバー3D

  • 箱ひげ図

8. 要約

この記事では、echartsをベースにしたPythonの動的チャート表示コンポーネントであるpyechartsを紹介します。pyechartsは、一般的によく使われる多くのチャートタイプを提供するだけでなく、動的なデータ操作をサポートしていることが最も重要な機能です。まとめると、以下のようになります。

  • パイチャートのすべての画像プロパティは、初期チャート プロパティ、グローバル プロパティ、シリーズ プロパティなど、opts を通じて設定されます。
  • この記事では、ほとんどのニーズに対応できる一般的な設定を紹介します。ご自由にご利用ください。「一般的な設定の使用方法」をご覧ください。
  • pyecharts は、折れ線グラフや棒グラフを重ね合わせるなど、複数のグラフを組み合わせたり、グリッドに複数のグラフを表示したりすることをサポートしています。
  • Pyechartsは、中国の省や都市、そして世界中の国々の地図を表示できる便利な地図ツールです。[場所、値]に基づいてデータを用意してください。
  • タイムラインを使用すると、チャートを時間に応じて回転させることができます。
  • その他のグラフについては参考資料を参照してください。

9. 参考文献

https://pyecharts.org/#/zh-cn/クイックスタート