> 技术文档 > Python折线图

Python折线图


文章目录

  • 1.数据可视化——折线图
    • 1.1 json数据格式
    • 1.2 Python数据和Json数据的相互转化
    • 1.3 pyecharts模块
      • 1.3.1 构建基础折线图
      • 1.3.2 pyecharts配置选项
    • 1.4 数据处理
    • 1.5 创建折现图

1.数据可视化——折线图

1.1 json数据格式

是一种轻量级数据交互格式,可以按照JSON指定的格式组织和封装数据。
本质上是一个带有特定格式的字符串。
是不同语言之间的中转站。
Python折线图

1.2 Python数据和Json数据的相互转化

import jsondata = [{\"name\":\"张大山\",\"age\":11},{\"name\":\"王大锤\",\"age\":13},{\"name\":\"赵啸虎\",\"age\":16}]json_str = json.dumps(data, ensure_ascii=False)print(json_str)print(type(json_str))
  1. 通过json.dumps(data)方法将Python数据转化为json数据data = json.dumps(data)
    若有中文,则可以带上ensure_ascii=False却把送中文正常转换。
  2. 通过json.loads(data)方法将json数据转化为python列表或字典。

1.3 pyecharts模块

官方网站:pyecharts.org
画廊官方网站:gallery.pyecharts.org
画廊网站有许多图表,可供使用者使用。

1.3.1 构建基础折线图

# 导包,导入Line功能构建折线图对象from pyecharts.charts import Line# 得到折线图对象line = Line()# 添加x轴数据line.add_xaxis([\"中国\",\"美国\",\"英国\"])# 添加y轴数据line.add_yaxis(\"GDP\",[30,20,10])# 生成图表line.render()

1.3.2 pyecharts配置选项

  1. 全局配置
    通过set_global_opts方法配置。
# 导包,导入Line功能构建折线图对象from pyecharts.charts import Linefrom pyecharts.options import TitleOpts,LegendOpts,ToolboxOpts,VisualMapOpts# 得到折线图对象line = Line()# 添加x轴数据line.add_xaxis([\"中国\",\"美国\",\"英国\"])# 添加y轴数据line.add_yaxis(\"GDP\",[30,20,10])# 设置全局配置项line.set_global_opts( title_opts = TitleOpts(title=\"GDP展示\",pos_left=\"center\",pos_bottom=\"1%\"), # 标题 legend_opts = LegendOpts(is_show=True), # 图例 toolbox_opts = ToolboxOpts(is_show=True),  # 工具包 visualmap_opts = VisualMapOpts(is_show=True), # 视觉映射)# 生成图表print(line.render())

1.4 数据处理

import jsonf_us = open(\"F:/python LangChain/可视化案例数据/折线图数据/美国.txt\",\"r\",encoding=\"utf-8\")us_data = f_us.read()us_data = us_data.replace(\"jsonp_1629344292311_69436(\",\"\")us_data = us_data[:-2]us_dict = json.loads(us_data)trend = us_dict[\'data\'][0][\'trend\']x_data = trend[\'updateDate\'][:314]y_data = trend[\'list\'][0][\'data\'][:314]

1.5 创建折现图

import jsonfrom pyecharts.charts import Linefrom pyecharts.options import TitleOptsfrom pyecharts.options import LabelOpts#打开文件f_us = open(\"F:/python LangChain/可视化案例数据/折线图数据/美国.txt\",\"r\",encoding=\"utf-8\")us_data = f_us.read()f_jp = open(\"F:/python LangChain/可视化案例数据/折线图数据/日本.txt\",\"r\",encoding=\"utf-8\")jp_data = f_jp.read()f_in = open(\"F:/python LangChain/可视化案例数据/折线图数据/印度.txt\",\"r\",encoding=\"utf-8\")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转字典us_dict = json.loads(us_data)jp_dict = json.loads(jp_data)in_dict = json.loads(in_data)# 获取trend keyus_trend = us_dict[\'data\'][0][\'trend\']jp_trend = jp_dict[\'data\'][0][\'trend\']in_trend = in_dict[\'data\'][0][\'trend\']# 取x轴,y轴数据us_x_data = us_trend[\'updateDate\'][:314]us_y_data = us_trend[\'list\'][0][\'data\'][:314]jp_x_data = jp_trend[\'updateDate\'][:314]jp_y_data = jp_trend[\'list\'][0][\'data\'][:314]in_x_data = in_trend[\'updateDate\'][:314]in_y_data = in_trend[\'list\'][0][\'data\'][:314]# 生成图表line = Line()# 添加x轴数据line.add_xaxis(us_x_data) # x轴共用,使用一个国家即可# 添加y轴数据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%\"))# 调用render方法,生成图表line.render()# 关闭文件对象f_us.close()f_jp.close()f_in.close()

Python折线图