网站优化怎么做外链,杭州微信小程序开发公司排名,设计感强的网站,长春网站建设 吉网传媒文章目录 一 json数据格式1.1 json数据格式认识1.2 Python数据和Json数据的相互转换 二 pyecharts模块2.1 pyecharts概述2.2 pyecharts模块安装 三 pyecharts快速入门3.1 基础折线图3.2 pyecharts配置选项3.2.1 全局配置选项 3.4 折线图相关配置3.4.1 .add_yaxis相关配置选项3.… 文章目录 一 json数据格式1.1 json数据格式认识1.2 Python数据和Json数据的相互转换 二 pyecharts模块2.1 pyecharts概述2.2 pyecharts模块安装 三 pyecharts快速入门3.1 基础折线图3.2 pyecharts配置选项3.2.1 全局配置选项 3.4 折线图相关配置3.4.1 .add_yaxis相关配置选项3.4.2 .set_global_opts全局配置选项 五 综合案例对比折线图5.1 数据处理5.2 完整代码 一 json数据格式
1.1 json数据格式认识 JSON是一种轻量级的数据交互格式。可以按照JSON指定的格式去组织和封装数据 JSON本质上是一个带有特定格式的字符串 主要功能json就是一种在各个编程语言中流通的数据格式负责不同编程语言中的数据传递和交互. 类似于国际通用语言-英语、中国56个民族不同地区的通用语言-普通话 各种编程语言存储数据的容器不尽相同,在Python中有字典dict这样的数据类型, 而其它语言可能没有对应的字典。 为了让不同的语言都能够相互通用的互相传递数据JSON就是一种非常良好的中转数据格式。如下图以Python和C语言互传数据为例 简单的JSON数据示例 {name: John,age: 30,city: New York
}JSON还支持嵌套结构数组和对象的组合 {person: {name: Alice,age: 25},friends: [Bob,Charlie,David]
}
1.2 Python数据和Json数据的相互转换
使用内置的json模块来进行Python数据和JSON数据之间的相互转换。这个模块提供了方法来将Python数据结构转换为JSON格式以及将JSON格式转换为Python数据结构。
基本的示例
将Python数据转换为JSON
import json# Python字典
python_data {name: John,age: 30,city: New York
}# 将Python字典转换为JSON字符串
json_data json.dumps(python_data)
print(json_data)import json
# 准备列表列表内每一个元素都是字典将其转换为JSON
data [{name: 张大山, age: 11}, {name: 王大锤, age: 13}, {name: 赵小虎, age: 16}]
json_str json.dumps(data, ensure_asciiFalse)
print(type(json_str))
print(json_str)
# 准备字典将字典转换为JSON
d {name:周杰轮, addr:台北}
json_str json.dumps(d, ensure_asciiFalse)
print(type(json_str))
print(json_str)通过设置ensure_ascii参数为False你可以确保在生成JSON字符串时不会将非ASCII字符转义为Unicode转义序列。这对于处理包含非英文字符的数据非常有用因为它能够保持原始的字符表示而不是进行转义。
将JSON转换为Python数据
# JSON字符串
json_data {name: Alice, age: 25, city: London}# 将JSON字符串转换为Python字典
python_data json.loads(json_data)
print(python_data)# 将JSON字符串转换为Python数据类型[{k: v, k: v}, {k: v, k: v}]
s [{name: 张大山, age: 11}, {name: 王大锤, age: 13}, {name: 赵小虎, age: 16}]
l json.loads(s)
print(type(l))
print(l)
# 将JSON字符串转换为Python数据类型{k: v, k: v}
s {name: 周杰轮, addr: 台北}
d json.loads(s)
print(type(d))
print(d)注意
使用json.dumps()函数可以将Python数据结构转换为JSON字符串。使用json.loads()函数可以将JSON字符串转换为Python数据结构。JSON中的键必须是字符串因此在Python字典中键应为字符串。
二 pyecharts模块
2.1 pyecharts概述
Pyecharts 是一个基于 Python 的用于生成交互式图表的模块。它是对 ECharts 图表库的封装ECharts 是百度开发的一款功能强大的数据可视化库。通过 Pyecharts可以在 Python 中轻松地生成各种类型的图表如折线图、柱状图、饼图、地图等并且这些图表支持交互和动态效果。
Pyecharts 具有以下特点
提供了多种图表类型适用于不同的数据展示需求。支持生成静态图像和动态网页交互图表。可以通过链式调用的方式配置图表样式、数据和交互行为。可以与常见的 Python 数据库和数据处理库如 Pandas集成。
2.2 pyecharts模块安装
方式一打开终端使用命令行安装
pip install pyecharts方式二使用PyCharm进行安装 配置镜像网站参看探索Python异常世界玩转异常、模块与包 6.5 PyCharm配置镜像网站
三 pyecharts快速入门
3.1 基础折线图 演示pyecharts的基础入门# 导包
from pyecharts.charts import Line
# 创建一个折线图对象
line Line()
# 给折线图对象添加x轴的数据
line.add_xaxis([中国, 美国, 英国])
# 给折线图对象添加y轴的数据
line.add_yaxis(GDP, [30, 20, 10])# 通过render方法将代码生成为图像
line.render()3.2 pyecharts配置选项
pyecharts模块中有很多的配置选项, 常用到2个类别的选项: 全局配置选项系列配置选项
3.2.1 全局配置选项
Pyecharts 提供了一些全局配置选项可以用来在整个图表中设置一些通用的属性比如图表标题、图例、工具箱等。这些选项会应用于整个图表而不仅仅是某个特定系列或组件。全局配置选项可以通过set_global_opts方法来进行配置 以下是一些常用的全局配置选项及其说明
标题设置
title_optsopts.TitleOpts(title图表标题, subtitle副标题)图例设置
legend_optsopts.LegendOpts(type_scroll, pos_leftcenter, orienthorizontal)工具箱设置
toolbox_optsopts.ToolboxOpts(is_showTrue, featureopts.ToolBoxFeatureOpts(save_as_imageTrue))数据标签设置
label_optsopts.LabelOpts(is_showTrue, positiontop)全局系列样式设置
itemstyle_optsopts.ItemStyleOpts(colorblue, border_colorred)动画效果设置
animation_optsopts.AnimationOpts(animation_delay1000, animation_easingelasticOut)提示框设置
tooltip_optsopts.TooltipOpts(formatter{a}: {c},
)
# formatter 参数可以设置提示框内容的显示格式。{a} 表示数据系列的名称{c} 表示数据值。这些全局配置选项通常可以通过 set_global_opts() 方法来应用于整个图表。
以下是一个示例展示如何在折线图中使用全局配置选项
# 导包
from pyecharts.charts import Line
from pyecharts.options import TitleOpts, LegendOpts, ToolboxOpts, VisualMapOpts
# 创建一个折线图对象
line Line()
# 给折线图对象添加x轴的数据
line.add_xaxis([中国, 美国, 英国])
# 给折线图对象添加y轴的数据
line.add_yaxis(GDP, [30, 20, 10])# 设置全局配置项set_global_opts来设置,
line.set_global_opts(title_optsTitleOpts(titleGDP展示, pos_leftcenter, pos_bottom1%),legend_optsLegendOpts(is_showTrue),toolbox_optsToolboxOpts(is_showTrue),visualmap_optsVisualMapOpts(is_showTrue),
)# 通过render方法将代码生成为图像
line.render()3.4 折线图相关配置
配置项作用代码实例init_opts对折线图初始化设置宽高init_optsopts.InitOpts(width“1600px”, height“800px”).add_xaxis添加x轴数据.add_xaxis(列表).add_yaxis添加y轴数据
当使用 add_yaxis 方法来向图表中添加数据系列时你可以使用一些相关的配置选项来自定义该数据系列的样式、标记点、标签等。以下是一些常用的 add_yaxis 相关配置选项
3.4.1 .add_yaxis相关配置选项
配置选项说明is_smooth是否使用平滑曲线插值默认为 False。is_symbol_show是否显示标记点默认为 True。symbol标记点的图形如 “circle”、“rect”、“triangle” 等。symbol_size标记点的大小。label_opts数据标签的配置选项可以设置是否显示、位置、颜色等。areastyle_opts面积图样式的配置选项用于区域图设置填充色、透明度等。linestyle_opts线条样式的配置选项设置线的颜色、宽度、透明度等。itemstyle_opts数据项的样式配置选项包括颜色、边框颜色、透明度等。markpoint_opts标记点的配置选项可以添加最大值、最小值等标记点。markline_opts标记线的配置选项可以添加平均值、趋势线等标记线。tooltip_opts提示框的配置选项用于显示数据信息包括格式、触发方式等。step设置折线图的样式可选值为 “start”、“middle”、“end”。area_opacity面积图的透明度适用于区域图。值范围为 [0, 1]。label用于设置数据项的名称会在图例和提示框中显示。data数据列表表示 y 轴数据。series_name设置图例名称series_name“美国确诊人数”
3.4.2 .set_global_opts全局配置选项 五 综合案例对比折线图
5.1 数据处理
原始数据格式:(使用json工具查看) 对数据进行整理, 让数据符合json格式
import json
from pyecharts.charts import Line# 处理数据
f_us open(C:/美国.txt, r, encodingUTF-8)
us_data f_us.read() # 美国的全部内容f_jp open(C:/日本.txt, r, encodingUTF-8)
jp_data f_jp.read() # 日本的全部内容f_in open(C:/印度.txt, r, encodingUTF-8)
in_data f_in.read() # 印度的全部内容# 去掉不合JSON规范的开头
us_data us_data.replace(jsonp_1629344292311_69436(, )
jp_data jp_data.replace(jsonp_1629350871167_29498(, )
in_data in_data.replace(jsonp_1629350745930_63180(, )# 去掉不合JSON规范的结尾
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)# 获取trend key
us_trend_data us_dict[data][0][trend]
jp_trend_data jp_dict[data][0][trend]
in_trend_data in_dict[data][0][trend]# 获取日期数据用于x轴取2020年到314下标结束
us_x_data us_trend_data[updateDate][:314]
jp_x_data jp_trend_data[updateDate][:314]
in_x_data in_trend_data[updateDate][:314]# 获取确认数据用于y轴取2020年到314下标结束
us_y_data us_trend_data[list][0][data][:314]
jp_y_data jp_trend_data[list][0][data][:314]
in_y_data in_trend_data[list][0][data][:314]5.2 完整代码
import json
from pyecharts.charts import Line
from pyecharts.options import TitleOpts, LabelOpts, LegendOpts, AxisOpts# 处理数据
f_us open(C:/美国.txt, r, encodingUTF-8)
us_data f_us.read() # 美国的全部内容f_jp open(C:/日本.txt, r, encodingUTF-8)
jp_data f_jp.read() # 日本的全部内容f_in open(C:/印度.txt, r, encodingUTF-8)
in_data f_in.read() # 印度的全部内容# 去掉不合JSON规范的开头
us_data us_data.replace(jsonp_1629344292311_69436(, )
jp_data jp_data.replace(jsonp_1629350871167_29498(, )
in_data in_data.replace(jsonp_1629350745930_63180(, )# 去掉不合JSON规范的结尾
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)# 获取trend key
us_trend_data us_dict[data][0][trend]
jp_trend_data jp_dict[data][0][trend]
in_trend_data in_dict[data][0][trend]# 获取日期数据用于x轴取2020年到314下标结束
us_x_data us_trend_data[updateDate][:314]
jp_x_data jp_trend_data[updateDate][:314]
in_x_data in_trend_data[updateDate][:314]# 获取确认数据用于y轴取2020年到314下标结束
us_y_data us_trend_data[list][0][data][:314]
jp_y_data jp_trend_data[list][0][data][:314]
in_y_data in_trend_data[list][0][data][:314]
# 生成图表
line Line() # 构建折线图对象
# 添加x轴数据
line.add_xaxis(us_x_data) # x轴是公用的所以使用一个国家的数据即可
# 添加y轴数据
line.add_yaxis(美国确诊人数, us_y_data, label_optsLabelOpts(is_showFalse)) # 添加美国的y轴数据
line.add_yaxis(日本确诊人数, jp_y_data, label_optsLabelOpts(is_showFalse)) # 添加日本的y轴数据
line.add_yaxis(印度确诊人数, in_y_data, label_optsLabelOpts(is_showFalse)) # 添加印度的y轴数据# 设置全局选项
line.set_global_opts(# 标题设置title_optsTitleOpts(title2020年美日印三国确诊人数对比折线图, pos_leftcenter, pos_bottom1%),# x轴配置项xaxis_optsAxisOpts(name时间), # 轴标题# y轴配置项yaxis_optsAxisOpts(name累计确诊人数), # 轴标题# 图例配置项legend_optsLegendOpts(pos_left70%), # 图例的位置
)# 调用render方法生成图表
line.render()
# 关闭文件对象
f_us.close()
f_jp.close()
f_in.close()