データの視覚化 - 提供されたデータに従って、データが処理され、折れ線グラフの形式で表示されます。

ここに画像の説明を挿入

序文

以前に、pyecharts モジュールを使用して単純な折れ線グラフを描画する方法を学びました。そこで、今日は、提供されたデータに従ってデータを処理し、折れ線グラフの形式で表示する方法を共有します。

情報処理

これは、2020 年の米国、インド、日本における新たな歯冠の診断、治療、死亡、新規診断の数に関するデータです。これらのデータは私のリソースにアップロードしますので、必要に応じてダウンロードしてください。
ここに画像の説明を挿入

このようなデータを見ると、「すぐには読みたくない」と感じてしまうでしょうが、急いでいる必要はありません。実際、注意していれば、内部の層を見ることができます。さらに、ツールを使用してデータのビューを表示することで、データをより深く理解できるようになります。

ここに画像の説明を挿入

データを取得する

まず、ファイル操作を使用して、これら 3 つのファイル内のデータを取得する必要があります。

# 打开我们的测试数据
f_us = open("D:/桌面/美国.txt", 'r', encoding='UTF8') 
f_jp = open("D:/桌面/日本.txt", 'r', encoding='UTF8')
f_in = open("D:/桌面/印度.txt", 'r', encoding='UTF8')

# 读取数据
us_data = f_us.read()
jp_data = f_jp.read()
in_data = f_in.read()

データには中国語が含まれているため、読み取る形式を指定する必要がありますUTF_8

データをフィルタリングする

データを取得したら、データを処理する必要があります。{ } [ ]データがデータを表すことは誰もが知っていますJSONが、ファイル内にはまだ JSON ではないデータがいくつかあるため、それらに対処する必要があります。また、描画するのは 2020 年のデータのみであるため、無駄なデータを除外する必要があります。
ここに画像の説明を挿入
ここに画像の説明を挿入

# 处理数据
us_data = us_data.replace('jsonp_1629344292311_69436(','')  # 用空字符串来替换这些多余的数据
jp_data = jp_data.replace('jsonp_1629350871167_29498(','')
in_data = in_data.replace('jsonp_1629350745930_63180(','')
us_data = us_data[:-2]  # 截取掉后面的 );
jp_data = jp_data[:-2]
in_data = in_data[:-2]

JSONデータをPythonデータに変換する

JSONこれらの冗長データをフィルターで除外した後、これらのデータをデータに変換する必要がありますpython

# 将json数据转换为python数据
us_dict = json.loads(us_data)
jp_dict = json.loads(jp_data)
in_dict = json.loads(in_data)

この関数を使用するときは、モジュールをjson.loads()インポートする必要があることを忘れないでください。json

横座標データと縦座標データをフィルターで除外する

ここに画像の説明を挿入

trendまず内部のデータを取得します。
ここに画像の説明を挿入

us_trend = us_dict['data'][0]['trend']
jp_trend = jp_dict['data'][0]['trend']
in_trend = in_dict['data'][0]['trend']

横軸の日付updateDateデータを取得する

ここに画像の説明を挿入

x_data = us_trend['updateDate'][:314]  # 前314个数据表示2020年数据

座標dataデータの取得

ここに画像の説明を挿入

us_y_data = us_trend['list'][0]['data'][:314]
jp_y_data = jp_trend['list'][0]['data'][:314]
in_y_data = in_trend['list'][0]['data'][:314]

処理されたデータに基づいて折れ線グラフを描画します

まず空の折れ線グラフを作成します

from pyecharts.charts import Line

# 创建折线图
line = Line()

空の折れ線グラフの水平および垂直座標データを追加します。

# 添加横纵坐标数据
line.add_xaxis(x_data)
line.add_yaxis('美国确诊人数',us_y_data)
line.add_yaxis('日本确诊人数',jp_y_data)
line.add_yaxis('印度确诊人数',in_y_data)

グローバル構成オプションを追加する

from pyecharts.options import TitleOpts,LegendOpts,ToolboxOpts,VisualMapOpts

# 设置全局配置项
line.set_global_opts(title_opts=TitleOpts(title='2020年美国确诊人数',pos_left='center',pos_bottom='1%'),
                     legend_opts=LegendOpts(is_show=True),
                     toolbox_opts=ToolboxOpts(is_show=True),
                     visualmap_opts=VisualMapOpts(is_show=True)
)

プログラムを実行するとrender,htmlファイルが生成されるので、それを実行します。
ここに画像の説明を挿入

ここに画像の説明を挿入
ここでは、データが多すぎるため、表示されるグラフィックが非常に複雑になりますが、シリーズ構成オプションを設定して、破線データの表示をキャンセルすることができます。

from pyecharts.options import TitleOpts,LegendOpts,ToolboxOpts,VisualMapOpts,LabelOpts

# 添加横纵坐标数据
line.add_xaxis(x_data)
line.add_yaxis('美国确诊人数',us_y_data,label_opts=LabelOpts(is_show=False))
line.add_yaxis('日本确诊人数',jp_y_data,label_opts=LabelOpts(is_show=False))
line.add_yaxis('印度确诊人数',in_y_data,label_opts=LabelOpts(is_show=False))

ここに画像の説明を挿入

全体のコード表示

import json
from pyecharts.charts import Line
from pyecharts.options import TitleOpts,LegendOpts,ToolboxOpts,VisualMapOpts,LabelOpts

# 打开我们的测试数据
f_us = open("D:/桌面/美国.txt", 'r', encoding='UTF8')
f_jp = open("D:/桌面/日本.txt", 'r', encoding='UTF8')
f_in = open("D:/桌面/印度.txt", 'r', encoding='UTF8')

# 读取数据
us_data = f_us.read()
jp_data = f_jp.read()
in_data = f_in.read()

# 处理数据
us_data = us_data.replace('jsonp_1629344292311_69436(','')
jp_data = jp_data.replace('jsonp_1629350871167_29498(','')
in_data = in_data.replace('jsonp_1629350745930_63180(','')
us_data = us_data[:-2]
jp_data = jp_data[:-2]
in_data = in_data[:-2]

# 将json数据转换为python数据
us_dict = json.loads(us_data)
jp_dict = json.loads(jp_data)
in_dict = json.loads(in_data)

# 获取对应的横坐标与纵坐标数据
us_trend = us_dict['data'][0]['trend']
jp_trend = jp_dict['data'][0]['trend']
in_trend = in_dict['data'][0]['trend']

x_data = us_trend['updateDate'][:314]

us_y_data = us_trend['list'][0]['data'][:314]
jp_y_data = jp_trend['list'][0]['data'][:314]
in_y_data = in_trend['list'][0]['data'][:314]

# 创建折线图
line = Line()

# 添加横纵坐标数据
line.add_xaxis(x_data)
line.add_yaxis('美国确诊人数',us_y_data,label_opts=LabelOpts(is_show=False))
line.add_yaxis('日本确诊人数',jp_y_data,label_opts=LabelOpts(is_show=False))
line.add_yaxis('印度确诊人数',in_y_data,label_opts=LabelOpts(is_show=False))

# 设置全局配置项
line.set_global_opts(title_opts=TitleOpts(title='2020年美国确诊人数',pos_left='center',pos_bottom='1%'),
                     legend_opts=LegendOpts(is_show=True),
                     toolbox_opts=ToolboxOpts(is_show=True),
                     visualmap_opts=VisualMapOpts(is_show=True)
)

line.render()

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/m0_73888323/article/details/131811759