写在前面
一、JSON数据格式
JSON是一种轻量级数据交互格式,可以按照JSON指定的格式去组织和封装数据。其本质是一个带有特定格式的字符串,其可以在各个编程语言中进行流通、传递、交互。而Python中的数据格式(列表、字典)可以做到与JSON的无缝切换。注:当JSON是列表时,需要列表中嵌套的是字典。# 导入json模块import json# 准备python数据mydict = {"name":"Biomamba","Date":2023,"major":"Bioinformatics"}print(f"mydict的数据格式是{type(mydict)}")# python数据转json## mydict的数据格式是<class 'dict'>my_json = json.dumps(mydict,ensure_ascii=False)#ensure_ascii 保证对中文的可读性print(f"my_json的数据格式是:{type(my_json)}")# 确实如上所述,json的数据格式实质上是字符串## my_json的数据格式是:<class 'str'>my_tran = json.loads(my_json)print(f"json数据转回python数据后的格式为:{type(my_tran)}")## json数据转回python数据后的格式为:<class 'dict'>二、pyecharts
echarts由百度团队开发,因此官网拥有丰富的中文教程:https://pyecharts.org
from pyecharts.charts import Line# 得到折线对象my_line = Line()print(type(my_line))## <class 'pyecharts.charts.basic_charts.line.Line'># 添加X轴数据my_line.add_xaxis(["SampleA","SampleB","SampleC"])# 添加y轴数据## <pyecharts.charts.basic_charts.line.Line object at 0x000001AFF3AABD68>my_line.add_yaxis("Reads number",[10,20,30])# 渲染并生成图表## <pyecharts.charts.basic_charts.line.Line object at 0x000001AFF3AABD68>my_line.render()## 'F:\\公众号\\Python学习\\render.html'得到图表如下:
# 设置标题名称from pyecharts.options import TitleOptsmy_line.set_global_opts( title_opts = TitleOpts(title ="我是一个标题"# 控制标题名称 ))# 渲染并生成图表## <pyecharts.charts.basic_charts.line.Line object at 0x000001AFF3AABD68>my_line.render()## 'F:\\公众号\\Python学习\\render.html'可以看到新生成的标题:
# 调整标题位置from pyecharts.options import TitleOptsmy_line.set_global_opts( title_opts = TitleOpts(title ="我是一个标题", # 控制标题名称 pos_left ="center", # 控制标题水平位置 pos_bottom ="1%"# 控制标题垂直位置 ))# 渲染并生成图表## <pyecharts.charts.basic_charts.line.Line object at 0x000001AFF3AABD68>my_line.render()## 'F:\\公众号\\Python学习\\render.html'可以看到标题的位置被改变:
# 设置图例是否展示from pyecharts.options import LegendOptsmy_line.set_global_opts( legend_opts = LegendOpts(is_show =False) )# 渲染并生成图表## <pyecharts.charts.basic_charts.line.Line object at 0x000001AFF3AABD68>my_line.render()## 'F:\\公众号\\Python学习\\render.html'可以图例被关闭:
# 设置视觉映射是否展示from pyecharts.options import VisualMapOptsmy_line.set_global_opts( visualmap_opts = VisualMapOpts(is_show =True))# 渲染并生成图表## <pyecharts.charts.basic_charts.line.Line object at 0x000001AFF3AABD68>my_line.render()## 'F:\\公众号\\Python学习\\render.html'多出的视觉映射:
# ToolboxOpts可以交互式的切换图表形式from pyecharts.options import ToolboxOptsmy_line.set_global_opts( toolbox_opts = ToolboxOpts(is_show =True))# 渲染并生成图表## <pyecharts.charts.basic_charts.line.Line object at 0x000001AFF3AABD68>my_line.render()## 'F:\\公众号\\Python学习\\render.html'在右上角多出了一些可以交互的图标:
例如点击切换为柱状图:
通过Map功能实现
# 绘制一张最简单的地图:from pyecharts.charts import Map# 构建地图对象:map= Map() # 模拟一个数据my_data = [ ("北京市", 99), ("上海市", 199), ("湖南市", 299), ("台湾省", 399), ("广东省", 299)]# map.add("中国地图",my_data,"china")## <pyecharts.charts.basic_charts.map.Map object at 0x000001AFF51EE048>map.render()## 'F:\\公众号\\Python学习\\render.html'得到一个光秃秃的地图:
# 给图片加上对应地区的颜色:from pyecharts.charts import Mapfrom pyecharts.options import VisualMapOptsmap= Map()my_data = [ ("北京市", 99), ("上海市", 199), ("湖南市", 299), ("台湾省", 399), ("广东省", 299)]map.add("地图",my_data,"china")## <pyecharts.charts.basic_charts.map.Map object at 0x000001AFF51EED68>map.set_global_opts(visualmap_opts = VisualMapOpts( is_show=True))## <pyecharts.charts.basic_charts.map.Map object at 0x000001AFF51EED68>map.render()## 'F:\\公众号\\Python学习\\render.html'可以看出,我们标记的地区展现出了对应的颜色:
但是图例仍需修改
# 修改图例:from pyecharts.charts import Mapfrom pyecharts.options import VisualMapOptsmap= Map()my_data = [ ("北京市", 99), ("上海市", 199), ("湖南市", 299), ("台湾省", 399), ("广东省", 299)]map.add("地图",my_data,"china")## <pyecharts.charts.basic_charts.map.Map object at 0x000001AFF51D9358>map.set_global_opts(visualmap_opts = VisualMapOpts( is_show=True, is_piecewise=True, pieces = [ {"min":1,"max":99,"label":"1-99人","color":"#00FF00"}, {"min":100,"max":499,"label":"100-499人","color":"#FF4500"} ]))## <pyecharts.charts.basic_charts.map.Map object at 0x000001AFF51D9358>map.render()## 'F:\\公众号\\Python学习\\render.html'得到有颜色分布及图例的地图结果:
当数据具有跟多元素时,添加至my_data即可,这里就不多作演示了~
# 基础柱状图from pyecharts.charts import Bar# 构建柱状图对象bar = Bar()# 添加X轴数据:bar.add_xaxis(["Sample_1","Sample_2","Sample_3"])# 添加y轴数据:## <pyecharts.charts.basic_charts.bar.Bar object at 0x000001AFF51EEE48>bar.add_yaxis("Reads Number",[100000,200000,150000])# 绘图## <pyecharts.charts.basic_charts.bar.Bar object at 0x000001AFF51EEE48>bar.render("基础柱状图.html") # render宣传出图时可以指定文件名## 'F:\\公众号\\Python学习\\基础柱状图.html'得到一个最基本的柱状图:
# 将上述柱状图的x轴与y轴进行翻转bar.reversal_axis()# 绘图## <pyecharts.charts.basic_charts.bar.Bar object at 0x000001AFF51EEE48>bar.render("基础柱状图.html")## 'F:\\公众号\\Python学习\\基础柱状图.html'此时得到的柱状图便是右左向右:
我们可以看出,这时数字的位置在柱状图中央,我们看通过position调整其位置:
# 基础柱状图from pyecharts.charts import Barfrom pyecharts.options import LabelOpts# 构建柱状图对象bar = Bar()# 添加X轴数据:bar.add_xaxis(["Sample_1","Sample_2","Sample_3"])# 添加y轴数据:## <pyecharts.charts.basic_charts.bar.Bar object at 0x000001AFF51C7630>bar.add_yaxis("Reads Number",[100000,200000,150000], label_opts=LabelOpts(position="right") )## <pyecharts.charts.basic_charts.bar.Bar object at 0x000001AFF51C7630>bar.reversal_axis()# 绘图## <pyecharts.charts.basic_charts.bar.Bar object at 0x000001AFF51C7630>bar.render("基础柱状图.html")## 'F:\\公众号\\Python学习\\基础柱状图.html'可以看到数字的位置被改变
对于pyecharts来说,可以创建时间线来生成一些列柱状图:
# 基础柱状图from pyecharts.charts import Bar,Timelinefrom pyecharts.options import*# 构建第一个柱状图对象bar_1 = Bar()bar_1.add_xaxis(["Sample_1","Sample_2","Sample_3"])## <pyecharts.charts.basic_charts.bar.Bar object at 0x000001AFF51D2AC8>bar_1.add_yaxis("Reads Number",[100000,200000,150000])## <pyecharts.charts.basic_charts.bar.Bar object at 0x000001AFF51D2AC8>bar_2 = Bar()bar_2.add_xaxis(["Sample_1","Sample_2","Sample_3"])## <pyecharts.charts.basic_charts.bar.Bar object at 0x000001AFF51D2DA0>bar_2.add_yaxis("Reads Number",[160000,250000,170000])## <pyecharts.charts.basic_charts.bar.Bar object at 0x000001AFF51D2DA0>bar_3 = Bar()bar_3.add_xaxis(["Sample_1","Sample_2","Sample_3"])## <pyecharts.charts.basic_charts.bar.Bar object at 0x000001AFF51DA0F0>bar_3.add_yaxis("Reads Number",[50000,190000,150000])# 创建时间线对象## <pyecharts.charts.basic_charts.bar.Bar object at 0x000001AFF51DA0F0>timeline = Timeline()timeline.add(bar_1,"时间线1")## <pyecharts.charts.composite_charts.timeline.Timeline object at 0x000001AFF51DA400>timeline.add(bar_2,"时间线2")## <pyecharts.charts.composite_charts.timeline.Timeline object at 0x000001AFF51DA400>timeline.add(bar_3,"时间线3")# 绘图## <pyecharts.charts.composite_charts.timeline.Timeline object at 0x000001AFF51DA400>timeline.render("时间线柱状图.html") # render宣传出图时可以指定文件名## 'F:\\公众号\\Python学习\\时间线柱状图.html'这时候就得到了一个底部具有时间线轴的柱状图,可以自由的选择时间线进行展示,并且自动播放
# 设置自动播放:timeline.add_schema(play_interval =1000 ,#播放间隔/毫秒is_timeline_show =True, # 是否展示时间线is_auto_play =True, # 是否自动播放is_loop_play =True# 是否循环播放)## <pyecharts.charts.composite_charts.timeline.Timeline object at 0x000001AFF51DA400>timeline.render("时间线柱状图.html")## 'F:\\公众号\\Python学习\\时间线柱状图.html'往期回顾

如何联系我们


已有生信基地联系方式的同学无需重复添加

