PyechartsにおけるGeo関数の一般的なパラメータの使い方について説明します。
一、Pyeharts概要
pyechartsはEchartsのグラフを生成するためのクラスです。Echartsで生成した図の可視化効果は非常に良く、Pythonとのドッキングにはpyechartsライブラリが使われています。Pythonで直接データの生成図を使用するのに便利です。
最新のPyechartsライブラリのバージョンはv 1で、しかも古いバージョンv 0.5.Xと互換性がないので、v 0.5.Xバージョンももうメンテナンスしません。新旧バージョンのGeoは大きな変更があり、本編はいずれも古いバージョン0.5.11に基づいています。
二、Pyechartsの設置
pyechartsのインストール説明は簡単です。たくさんのオーディエンスが書いた過程もあります。本編では詳細には言及しません。指定されたバージョンの問題を主に話します。
インストールpyecharts
Pyecharts v 1バージョンのインストールは、pip install pyecharts-Uを使用することができます。
Pyecharts v 0.5.Xバージョンのインストールは、pip install pyecharts=0.5.11を使用することができます。
対応する地図をインストールして広げます。
中国省級地図:echarts-china a-province-pykg(730 KB)
中国市級地図:echarts-china-cities-pykg(3.8 MB)
中国区県地図:echarts-china-counties-pykg
中国大区地図:echarts-china-misc-pykg(例えば、華南、華北など)
三、Geo常用パラメータ説明
1、Geoを作成する:geo=Geo()
ゲロ=Geo()は地図を描いた背景です。
実際に使用する過程で、私達がよく使うのはいくつかのパラメータです。例えば、title、width、height、background_。カラーはこのいくつかの基本をやれば十分です。すべてのパラメータに標準値があります。これは極端な場合にはGeo()をそのまま使ってもいいという意味ですが、描かれたのは白紙です。
2、geo.add_coordinate()座標ポイントを追加します。
geo.add_coordinate()の役割は新しくなります。例えば、今は広州地図を呼び出して、特定の点「テスト1」を表示します。このような点はadd_を使わなければなりません。coordinateが追加されます。そうでないとエラーが発生します。
geo.add_coordinate(ポイント名、経度、緯度)、3つのパラメータは必須項目です。
geo.add_coordinate('テストポイント1',113.40,23.07)
3、geo.add()座標点を示す
geo.add()の役割は、上にロードされた地図に点を表示することです。addはパラメータが山のように積まれています。一番よく使われているのはseries auです。name、names、value、type、maptype、is_visualmap、visual_range、visualtext_.カラー、smbol_size、その中にseries_name、names、value、maptypeの四つは必須項目です。
ここでは2つの問題がまだ解決されていません。第一、知らないis_ラドムパラメータの役割は、TrueやFalseにも影響がないという感じです。第二、上図のseries_name「シリーズ名1」は、左の右に移動するなど、その位置をどう変えるか分かりません。
4、geo.render()保存ファイル
geo.render()は簡単です。地図をファイルに保存します。レンダーはパラメータが一つしかなくて、パスです。
最近はPythonを利用して爬虫する過程において、ウェブページに掲載されているデータを可視化する必要があります。一部のデータは地域分布に関するもので、地図に具体的なパラメータ分布を表示することで、データをより直感的で生き生きとさせることができます。
地図表示のツールは私が選んで使ったのはPyechartsライブラリの中でGeoで、Pycharmの下で運行しています。注意すべきは最新のPyechartsライブラリのバージョンはv 1で、最新のバージョンで、旧版v 0.5.Xとは互換性がないので、v 0.5.Xバージョンももうメンテナンスしていません。本論文では、いくつかのGeoライブラリの更新アプリケーションについても説明する。
Pyecharts v 1バージョンのインストールは、pip install pyecharts-Uを使用することができます。Pycharmに直接Pyechartsをインストールすることもできます。文書の住所はhttps://pyecharts.org/#/zh-cn/introです。
Pyecharts v 0.5.Xバージョンのインストールは、pip install pyecharts==0.5.11を使用することができます。文書の住所はhttps://05x-docs.pyecharts.org/#/zh-cn/prepareです。
新しいバージョンのPyechartsの地理図表Geoは大きな変化を持っています。全体的に一番直観的な更新の感じは、新しいライブラリは以前ほど煩雑ではなく、もっと簡単で直接的です。本人がPythonに接触したばかりなので、多くのものも入門したばかりです。今の段階でもGeoを初歩的に使用できる程度に達しています。新しいバージョンを探索しているうちに、ネット上で新板のPyechartsに関する説明が少ないことが分かりました。ここで自分が遭遇したいくつかの問題を自分の見解と整理しました。以下の説明と理解は比較的に浅いかもしれません。皆様のご寛恕を請う。
Geo:地理座標系
Geoは地理座標表示のツールとして機能的に古いバージョンはほぼ同じですが、詳細には大きな違いがあります。これは新旧コードが全く通用しないことをもたらします。
1.Geoを作成する:geo=Geo()
v 0.5.Xバージョンでは、geoを作成する過程で、いくつかの基本パラメータ設定が可能です。
文書の例を説明すると、
しかし、新しいバージョンの中でこのようなフォーマットで作成を続けている場合、コンパイラはAttributeErr:'str'object hasのatribute'get'を間違えました。このようなオブジェクトはありません。新版ドキュメントでGeoを直接作成するgeo=Geo()は、基本的に作成すれば良いのですが、もし本当にそれをより多くのパラメータに設定したいなら、もちろん可能です。
新しいライブラリでは、Geoの操作を一括してinit_に置きます。optsでは、変更するには、クラスのopts.InitOptsを統一して修正する必要があります。ここではfrom pyecharts imports options as optsを導入しなければなりません。
具体的なInitOptsには以下のパラメータが含まれています。
2.add_セットアップ
add_schemaはGeoの下の関数で、具体的な機能は地図のパラメーターと機能に対していくつか構成を行うので、主にあります。
3.add_coordinate設定:座標ポイントの追加
Geoでは、表示するポイントを自分で増やすことができます。場所、経度、緯度の3つのパラメータを設定することで追加が完了します。
これはGeoの中で最も主要な関数モジュールです。設定できるパラメータタイプも比較的多いです。新版のadd関数構造は以前に比べても大きく変わります。関連するパラメータは以下の通りです。
運転中に面白い問題を見つけました。座標を表示するごとに挿入します。
もう一つの注意すべき問題は、中国の地図を表示する時、使用する場所は「省」、「市」などが含まれてはいけません。「江蘇」、「浙江」などの地名しか使えません。そうでないと無効です。
最後に自分の運転で作成した地図を置きたいですが、ここの文章を初めてマークします。写真は添付されません。
以上は個人の経験ですので、参考にしていただければと思います。間違いがあったり、完全に考えていないところがあれば、教えてください。
pyechartsはEchartsのグラフを生成するためのクラスです。Echartsで生成した図の可視化効果は非常に良く、Pythonとのドッキングにはpyechartsライブラリが使われています。Pythonで直接データの生成図を使用するのに便利です。
最新のPyechartsライブラリのバージョンはv 1で、しかも古いバージョンv 0.5.Xと互換性がないので、v 0.5.Xバージョンももうメンテナンスしません。新旧バージョンのGeoは大きな変更があり、本編はいずれも古いバージョン0.5.11に基づいています。
二、Pyechartsの設置
pyechartsのインストール説明は簡単です。たくさんのオーディエンスが書いた過程もあります。本編では詳細には言及しません。指定されたバージョンの問題を主に話します。
インストールpyecharts
Pyecharts v 1バージョンのインストールは、pip install pyecharts-Uを使用することができます。
Pyecharts v 0.5.Xバージョンのインストールは、pip install pyecharts=0.5.11を使用することができます。
対応する地図をインストールして広げます。
pip install echarts-countries-pypkg
pip install echarts-china-provinces-pypkg
pip install echarts-china-cities-pypkg
pip install echarts-china-counties-pypkg
pip install echarts-china-misc-pypkg
グローバル国家地図:echarts-countries-pypekg(1.9 MB)中国省級地図:echarts-china a-province-pykg(730 KB)
中国市級地図:echarts-china-cities-pykg(3.8 MB)
中国区県地図:echarts-china-counties-pykg
中国大区地図:echarts-china-misc-pykg(例えば、華南、華北など)
三、Geo常用パラメータ説明
1、Geoを作成する:geo=Geo()
ゲロ=Geo()は地図を描いた背景です。
Geo(title,subtitle,width,height,title_pos,title_top,title_color,subtitle_color,title_text_size,subtitle_text_size,background_color,page_title,renderer,is_animation)
各パラメータは以下の通りです。実際に使用する過程で、私達がよく使うのはいくつかのパラメータです。例えば、title、width、height、background_。カラーはこのいくつかの基本をやれば十分です。すべてのパラメータに標準値があります。これは極端な場合にはGeo()をそのまま使ってもいいという意味ですが、描かれたのは白紙です。
Init docstring:
:param title:
, , ""
:param subtitle:
, , ""
:param width:
, 800(px)
:param height:
, 400(px)
:param title_pos:
, 'left', 'auto', 'left', 'right',
'center' ,
:param title_top:
, 'top', 'top', 'middle', 'bottom' ,
:param title_color:
, '#000'
:param subtitle_color:
, '#aaa'
:param title_text_size:
, 18
:param subtitle_text_size:
, 12
:param background_color:
, '#fff'
:param page_title:
html <title> 。 'Echarts'
:param renderer:
, 'svg' 'canvas' , 'canvas'。
3D 'canvas'。
:param extra_html_text_label:
HTML ,(<p> )。 list,list[0] ,
list[1] ( )。 ["this is a p label", "color:red"]
:param is_animation:
, True。V0.5.9+
例:
from pyecharts import Geo
geo =Geo("Geo ", " ",width=500, height=500, title_pos='center',title_top=20, title_color="#2E2E2E",
subtitle_color='#aaa',title_text_size=16,subtitle_text_size=12,background_color='#EEEEE8',
page_title='Echarts',renderer='canvas',is_animation=True)
geo
2、geo.add_coordinate()座標ポイントを追加します。
geo.add_coordinate()の役割は新しくなります。例えば、今は広州地図を呼び出して、特定の点「テスト1」を表示します。このような点はadd_を使わなければなりません。coordinateが追加されます。そうでないとエラーが発生します。
geo.add_coordinate(ポイント名、経度、緯度)、3つのパラメータは必須項目です。
geo.add_coordinate('テストポイント1',113.40,23.07)
3、geo.add()座標点を示す
geo.add()の役割は、上にロードされた地図に点を表示することです。addはパラメータが山のように積まれています。一番よく使われているのはseries auです。name、names、value、type、maptype、is_visualmap、visual_range、visualtext_.カラー、smbol_size、その中にseries_name、names、value、maptypeの四つは必須項目です。
# , tooltip ,legend 。
series_name: str,
# ( )
names:list
# ( )
value: list
# Geo , scatter, effectScatter, heatmap, lines 4
type: "scatter",
#
is_selected: True,
# ,circle,pin,rect,diamon,roundRect,arrow,triangle
symbol: circle,
#
symbol_size: 12,
# label
color: None,
# , lines
is_polyline: False,
# , (>=5k)
is_large: False,
# 。 0 1 , 。
trail_length: 0.2
# , 、 、china
maptype
# , Ture
is_random
# 。'scale' 、'move' 、'True'
is_roam: True
#
is_visualmap: True
#
visual_range
#
visual_text_color
#
geo_normal_color
# ( )
geo_emphasis_color
# , type="effectScatter"
effect_scale
#
is_label_show
#
label_text_color
# (inside,top,bottom,left,right)
label_pos: "inside"
#
border_color
例を引く
from pyecharts import Geo
districts=[' ', ' ', ' ',' 1']
value = [ 200, 200,300,400]
geo =Geo("Geo ", " ",width=500, height=500, title_pos='center',title_top=20, title_color="#2E2E2E",
subtitle_color='#aaa',title_text_size=16,subtitle_text_size=12,background_color='#EEEEE8',
page_title='Echarts',renderer='canvas',is_animation=True)
geo.add_coordinate(' 1',113.40,23.07)
geo.add(" 1",
districts, value,type="effectScatter",is_selected=True,symbol='circle',symbol_size=20,color=None,
maptype=' ',is_roam=True,is_visualmap=True, visual_range=[0,500],visual_text_color="#2E2E2E",
geo_normal_color="#323c48",geo_emphasis_color='#2a033d', effect_scale=3,
is_label_show=True,label_text_color="#00FF00",label_pos="inside"
)
geo.render(" 2.html")
geo
ここでは2つの問題がまだ解決されていません。第一、知らないis_ラドムパラメータの役割は、TrueやFalseにも影響がないという感じです。第二、上図のseries_name「シリーズ名1」は、左の右に移動するなど、その位置をどう変えるか分かりません。
4、geo.render()保存ファイル
geo.render()は簡単です。地図をファイルに保存します。レンダーはパラメータが一つしかなくて、パスです。
geo.render(" 2.html")
追加:Pyecharts v 1 Geoライブラリのいくつかの更新とアプリケーション最近はPythonを利用して爬虫する過程において、ウェブページに掲載されているデータを可視化する必要があります。一部のデータは地域分布に関するもので、地図に具体的なパラメータ分布を表示することで、データをより直感的で生き生きとさせることができます。
地図表示のツールは私が選んで使ったのはPyechartsライブラリの中でGeoで、Pycharmの下で運行しています。注意すべきは最新のPyechartsライブラリのバージョンはv 1で、最新のバージョンで、旧版v 0.5.Xとは互換性がないので、v 0.5.Xバージョンももうメンテナンスしていません。本論文では、いくつかのGeoライブラリの更新アプリケーションについても説明する。
Pyecharts v 1バージョンのインストールは、pip install pyecharts-Uを使用することができます。Pycharmに直接Pyechartsをインストールすることもできます。文書の住所はhttps://pyecharts.org/#/zh-cn/introです。
Pyecharts v 0.5.Xバージョンのインストールは、pip install pyecharts==0.5.11を使用することができます。文書の住所はhttps://05x-docs.pyecharts.org/#/zh-cn/prepareです。
新しいバージョンのPyechartsの地理図表Geoは大きな変化を持っています。全体的に一番直観的な更新の感じは、新しいライブラリは以前ほど煩雑ではなく、もっと簡単で直接的です。本人がPythonに接触したばかりなので、多くのものも入門したばかりです。今の段階でもGeoを初歩的に使用できる程度に達しています。新しいバージョンを探索しているうちに、ネット上で新板のPyechartsに関する説明が少ないことが分かりました。ここで自分が遭遇したいくつかの問題を自分の見解と整理しました。以下の説明と理解は比較的に浅いかもしれません。皆様のご寛恕を請う。
Geo:地理座標系
Geoは地理座標表示のツールとして機能的に古いバージョンはほぼ同じですが、詳細には大きな違いがあります。これは新旧コードが全く通用しないことをもたらします。
1.Geoを作成する:geo=Geo()
v 0.5.Xバージョンでは、geoを作成する過程で、いくつかの基本パラメータ設定が可能です。
文書の例を説明すると、
geo = Geo(" ", "data from pm2.5", title_color="#fff", title_pos="center", width=1200, height=600, background_color="#404a59", )
メインタイトル、サブタイトル、タイトル色まで、グラフのサイズ、背景色などを設定できます。しかし、新しいバージョンの中でこのようなフォーマットで作成を続けている場合、コンパイラはAttributeErr:'str'object hasのatribute'get'を間違えました。このようなオブジェクトはありません。新版ドキュメントでGeoを直接作成するgeo=Geo()は、基本的に作成すれば良いのですが、もし本当にそれをより多くのパラメータに設定したいなら、もちろん可能です。
新しいライブラリでは、Geoの操作を一括してinit_に置きます。optsでは、変更するには、クラスのopts.InitOptsを統一して修正する必要があります。ここではfrom pyecharts imports options as optsを導入しなければなりません。
具体的なInitOptsには以下のパラメータが含まれています。
class InitOpts(BasicOpts):
def __init__(
self,
width: str = "900px",
height: str = "500px",
chart_id: Optional[str] = None,
renderer: str = RenderType.CANVAS,
page_title: str = CurrentConfig.PAGE_TITLE,
theme: str = ThemeType.WHITE,
bg_color: Union[str, dict] = None,
js_host: str = "",
animation_opts: Union[AnimationOpts, dict] = AnimationOpts(),
):
self.opts: dict = {
"width": width,
"height": height,
"chart_id": chart_id,
"renderer": renderer,
"page_title": page_title,
"theme": theme,
"bg_color": bg_color,
"js_host": js_host,
"animationOpts": animation_opts,
}
注意したいのは、opt.InitOptsを直接配置すると、一部パラメータの変更しかできません。カラーなど、width、heightなどのパラメータは固定されていて、例えばこのように設定すれば修正できません。
geo = Geo(init_opts = opts.InitOpts("aaa", width = 400, height = 200, bg_color = "#404a59"))
TypeError:init()got multile values for argment'width'を多賦するエラーを報告します。幸い、新しいバージョンはOptsの設定項目をパラメータとして提供してくれます。また、元のdictをパラメータとして提供しています。すべてのパラメータは自分で任意に定義できます。具体的な操作コードは
geo = Geo(init_opts = {"width":1600,"chart_id":"ceshi","bg_color":"#404a59"})
ここでは、heightパラメータを変更すると、地図に直接画像が表示されなくなるという奇妙な現象が発見されました。2.add_セットアップ
add_schemaはGeoの下の関数で、具体的な機能は地図のパラメーターと機能に対していくつか構成を行うので、主にあります。
def add_schema(
# , pyecharts.datasets.map_filenames.json
maptype: str = "china",
# 。
is_roam: bool = True,
# 。 1
zoom: Optional[Numeric] = None,
# , 。 :center: [115.97, 29.71]
center: Optional[Sequence] = None,
# # , `series_options.LabelOpts`
label_opts: Union[opts.LabelOpts, dict, None] = None,
# 。
itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] =None,
#
emphasis_itemstyle_opts: Union[opts.ItemStyleOpts, dict,None] = None,
# 。
emphasis_label_opts: Union[opts.LabelOpts, dict, None] =None,
):
ここではmaptype、zoom、label_だけ使ったことがあります。optsの設定は以下の通りです。
geo.add_schema(maptype = "china", zoom = 1, label_opts = opts.LabelOpts(is_show=True))
maptypeは世界地図、省地図などに置き換えられます。地図資源は以下の通りです。
pip install echarts-countries-pypkg
pip install echarts-china-provinces-pypkg
pip install echarts-china-cities-pypkg
pip install echarts-china-counties-pypkg
pip install echarts-china-misc-pypkg
ズーム設定です。label_optsはラベルの設定です。1の設定のように、ここでも生dictでカスタマイズできます。3.add_coordinate設定:座標ポイントの追加
Geoでは、表示するポイントを自分で増やすことができます。場所、経度、緯度の3つのパラメータを設定することで追加が完了します。
def add_coordinate(
#
name: str,
#
longitude: Numeric,
#
latitude: Numeric,
)
この関数は旧版と一致しています。応用も非常に簡単です。ここでは追加しないで、簡単な例を挙げます。
geo.add_coordinate(" ", 120, 80)
4.add設定:表示と凡例フィルタこれはGeoの中で最も主要な関数モジュールです。設定できるパラメータタイプも比較的多いです。新版のadd関数構造は以前に比べても大きく変わります。関連するパラメータは以下の通りです。
def add(
# , tooltip ,legend 。
series_name: str,
# ( , )
data_pair: Sequence,
# Geo , scatter, effectScatter, heatmap, lines 4 ,
# from pyecharts.globals import GeoType
# GeoType.GeoType.EFFECT_SCATTER,GeoType.HEATMAP,GeoType.LINES
type_: str = "scatter",
#
is_selected: bool = True,
#
symbol: Optional[str] = None,
#
symbol_size: Numeric = 12,
# label
color: Optional[str] = None,
# , lines
is_polyline: bool = False,
# , (>=5k)
is_large: bool = False,
# 。 0 1 , 。 0.2
trail_length: Numeric = 0.2,
# 。
large_threshold: Numeric = 2000,
# , `series_options.LabelOpts`
label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(),
# , `series_options.EffectOpts`
effect_opts: Union[opts.EffectOpts, dict] = opts.EffectOpts(),
# , `series_options.LineStyleOpts`
linestyle_opts: Union[opts.LineStyleOpts, dict] = opts.LineStyleOpts(),
# , `series_options.TooltipOpts`
tooltip_opts: Union[opts.TooltipOpts, dict, None] = None,
# , `series_options.ItemStyleOpts`
itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,
)
その中で、新旧バージョンの最大の違いは、旧版の場所と値を分けてatrとvalueに配置し、旧版の典型的な例は以下の通りである。
from pyecharts import Geo
data = [
(" ", 9), (" ", 12), (" ", 12), (" ", 12), (" ", 14), (" ", 15)
]
geo = Geo(
" ",
"data from pm2.5",
title_color="#fff",
title_pos="center",
width=1200,
height=600,
background_color="#404a59",
)
attr, value = geo.cast(data)
geo.add("", attr, value, type="effectScatter", is_random=True, effect_scale=5)
geo.render()
新版のadd関数は場所と値を一つのデータ項目に入れています。
geo.add("", [attr, value], type_=ChartType.HEATMAP, symbol_size = 12, label_opts = opts.LabelOpts(is_show=False))
他のいくつかのパラメータ構成は大体以前と一致しており、構成も同様に1の方式を参照して行うことができる。運転中に面白い問題を見つけました。座標を表示するごとに挿入します。
geo.add_coordinate(" 1", 20, 40)
geo.add("haha1", [(" 1", 60)])
geo.add_coordinate(" 2", 60, 80)
geo.add("haha2", [(" 2", 60)])
このように実行しても大丈夫ですが、リストの項目を大量に挿入すると、
for i in range(num):
geo.add_coordinate(address[i], lng[i], lat[i])
geo.add("", [(address[i],60)])
このようにすると間違いを報告するので、具体的な原因はあまり分かりません。
for i in range(num):
geo.add_coordinate(address[i], lng[i], lat[i])
geo.add("", [(address[i],60) for i in range(num)])
このような修正をしたら大丈夫です。原因を知っている友達がいれば、メッセージをください。ありがとうございます。もう一つの注意すべき問題は、中国の地図を表示する時、使用する場所は「省」、「市」などが含まれてはいけません。「江蘇」、「浙江」などの地名しか使えません。そうでないと無効です。
最後に自分の運転で作成した地図を置きたいですが、ここの文章を初めてマークします。写真は添付されません。
以上は個人の経験ですので、参考にしていただければと思います。間違いがあったり、完全に考えていないところがあれば、教えてください。