Pyecharts データ視覚化 (3)

目次

1. ワードクラウドマップを描く

2. サンキー図を描く

3. 平行座標図を描く

4. ノードグラフを描く

5. 地図を描く

この記事では主に、Pyecharts を使用してワード クラウド図、サンキー図、平行座標図、ノード図、マップを描画する方法を紹介します。これらの図はあまり一般的には使用されませんが、それでもかなり見栄えがします。それが紙を次のレベルに引き上げることができると信じています。

1. ワードクラウドマップを描く

Pyecharts は WordCloud を使用してワード クラウド グラフを描画します。

from pyecharts import options as opts
from pyecharts.charts import Page, WordCloud
from pyecharts.globals import SymbolType
words = [
    ("牛肉面", 7800),("黄河", 6181),
    ("《读者》杂志", 4386), ("甜胚子", 3055),
    ("甘肃省博物馆", 2055),("莫高窟", 8067),("兰州大学", 4244),
    ("西北师范大学", 1868),("中山桥", 3484),
    ("月牙泉", 1112),("五泉山", 980),
    ("五彩丹霞", 865),("黄河母亲", 847),("崆峒山",678),
    ("羊皮筏子", 1582),("兴隆山",868),
    ("兰州交通大学", 1555),("白塔山", 2550),("五泉山", 2550)]
c = WordCloud()
c.add("", words, word_size_range=[20, 80])
c.set_global_opts(title_opts=opts.TitleOpts(title="WordCloud-基本示例"))
c.render_notebook()

結果グラフ:

2. サンキー図を描く

サンキー ダイアグラムは、サンキー フロー ダイアグラムまたはサンキー エネルギー ダイアグラムとも呼ばれ、フロー、遷移、または関係を視覚化するために使用される図の一種です。主にノード(ノード)とエッジ(リンク)で構成され、ノードは物や物の集まりを表し、エッジはノード間の流れや転送を表します。サンキー ダイアグラムは、データ フローの方向と割合を示しながら、さまざまなノード間の関係と相互作用を明確に表現できます。

from pyecharts import options as opts
from pyecharts.charts import Sankey
# 节点数据
nodes = [
    {'name': '男生'},
    {'name': '女生'},
    {'name': '打游戏'},
    {'name': '加班'},
    {'name': '追剧'},
]

# 边数据
links = [
    {"source": '男生', "target": '打游戏', "value": 30},
    {"source": '男生', "target": '加班', "value": 20},
    {"source": '女生', "target": '打游戏', "value": 40},
    {"source": '女生', "target": '加班', "value": 15},
    {"source": '女生', "target": '追剧', "value": 25},
]
sankey = (
    Sankey()
    .add(
        "",
        nodes,
        links,
        linestyle_opt=opts.LineStyleOpts(opacity=0.2, curve=0.5, color="source"),
        label_opts=opts.LabelOpts(position="right"),
        node_gap=25
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="男生女生兴趣分布"),
        tooltip_opts=opts.TooltipOpts(trigger="item", trigger_on="mousemove"),
    )
)
sankey.render_notebook()

結果グラフ:

3. 平行座標図を描く

平行座標プロット (平行座標プロット) は、複数の数値変数を含むデータ セットを視覚化するための多次元データ視覚化方法です。平行な直線上に複数の座標軸を描き、各軸は変数を表し、各データ ポイントをこれらの座標軸上の対応する位置にマッピングして、複数の変数間の関係と傾向を示します。

from pyecharts import options as opts
from pyecharts.charts import Parallel
import numpy as np
import seaborn as sns
data=sns.load_dataset('iris')
data1=np.array(df[['sepal_length','sepal_width','petal_length','petal_width']]).tolist()
parallel_axis=[{"dim":0,"name":"萼片长度"},
               {"dim":1,"name":"萼片宽度"},
               {"dim":2,"name":"花瓣长度"},
               {"dim":3,"name":"花瓣宽度"},
              ]
parallel=Parallel(init_opts=opts.InitOpts(width='600px',height='400px'))
parallel.add_schema(schema=parallel_axis)
parallel.add('iris平行坐标图',data=data1,linestyle_opts=opts.LineStyleOpts(width=4,opacity=0.5))
parallel.render_notebook()

結果グラフ:

4. ノードグラフを描く

ネットワーク ダイアグラムまたはグラフとも呼ばれるノード リンク ダイアグラムは、ノード (頂点とも呼ばれます) とノード間の接続 (エッジとも呼ばれます) を視覚化するためのグラフです。ノード グラフは、複雑な関係、ネットワーク、システムを表すためによく使用されます。ノードグラフにおいて、ノードは人、場所、物品などの実体や物体を表し、接続はノード間の関係や接続形態を表す。接続は、ノード間の関係の性質に応じて、有向または無向にすることができます。

from pyecharts import options as opts
from pyecharts.charts import Graph

nodes = [
    {"name": "A"},
    {"name": "B"},
    {"name": "C"},
    {"name": "D"},
    {"name": "E"},
    {"name": "F"},
]

links = []
for i in range(len(nodes)):
    for j in range(i+1, len(nodes)):
        links.append({"source": nodes[i]["name"], "target": nodes[j]["name"]})

graph = (
    Graph()
    .add("", nodes, links, repulsion=800, layout="force", is_draggable=True)
    .set_global_opts(title_opts=opts.TitleOpts(title="Relationship Graph"))
    .render("relationship_graph.html")
)

結果グラフ:

5. 地図を描く

全国の主要都市の航空の流れの地図を描く

from pyecharts import options as opts 
from pyecharts.charts import Geo 
from pyecharts.globals import ChartType, SymbolType

c = (
        Geo()
        .add_schema(maptype="china")
        .add( "",
            [ ("哈尔滨", 66), ("重庆", 88), ("上海", 100), ("乌鲁木齐", 30),("北京", 30),("兰州",170)],
            type_=ChartType.EFFECT_SCATTER,
            color="green",
        )
        .add(
            "geo",
            [("北京", "兰州"),( "兰州","北京"), ("重庆", "杭州"),("哈尔滨", "重庆"),("乌鲁木齐", "哈尔滨")],
            type_=ChartType.LINES,
            effect_opts=opts.EffectOpts(
                symbol=SymbolType.ARROW, symbol_size=6, color="blue"
            ),
            linestyle_opts=opts.LineStyleOpts(curve=0.2),
        )
        .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
        .set_global_opts(title_opts=opts.TitleOpts(title="主要城市航班路线和数量"))
    )

c.render_notebook()

結果グラフ:

おすすめ

転載: blog.csdn.net/m0_64087341/article/details/132642313