我们用影刀把数据抓取下来,有时候会需要对这些数据进行可视化,那我们就又得去其他编辑器里面写可视化代码,这样会比较麻烦,那就可以直接在影刀里面把可视化封装成一条条指令,直接把我们抓取的的数据传进去这条指令进行可视化,这样就方便多了。

        首先需要在影刀里面install matplotlib,import matplotlib(除了matplotlib,还可以用Seaborn)

然后在这个python模块里面用matplotlib包来写可视化代码,这里,就用双折线图来演示吧:

'''
x_data: x轴数据
x_name:x轴名称
y1_data:折线1数据
y2_data:折线2数据
y1_name:折线1名称
y2_name:折线1名称
y_description:y轴名称
title:图片标题
path:保存图片路径
'''
from matplotlib import pyplot as plt
import matplotlib

def zexain(x_data, x_name, y1_data, y2_data, y1_name, y2_name, y_description, title):
    # 设置全局变量的中文字体
    font = {'family': 'FangSong',
            'weight': 'bold',
            'size': '16'}
    plt.rc('font', **font)
    '''figure是图形图标的意思,在这里指的是我们画的图,通过实例化一个figure并且传递参数,
    能够在后台自动使用该figure实例,在图像模糊时传入dip参数(每英寸像素点多少个),让图片更加清晰
    figsizes传入的是宽和高
    '''
    fig = plt.figure(figsize=(20, 8), dpi=80)
    # x轴数据,是一个可迭代的对象
    x  = x_data
    # y轴数据,是一个可迭代的对象
    y_1 = y1_data
    y_2 = y2_data
    
    # 传入x, y通过plot绘制出图
    plt.plot(x, y_1, label=y1_name)
    plt.plot(x, y_2, label=y2_name)
    # 添加图例,折线的名字才可以显示出来
    plt.legend()
    
    x1 = ["{}时".format(i) for i in x_data]
    plt.xticks(x, x1)
    plt.yticks(range(min(y_2), max(y_1)+1))
    plt.xlabel(x_name)
    plt.ylabel(y_description)
    plt.title(title)
    plt.grid(alpha=0.9)
    plt.savefig('{}\{}.png'.format(path,title))

 我们把以上代码写到影刀的python模块中:

 新建一个双折线流程,在这个流程里面调用平台python模块tool中的zexian这个函数,把我们的参数传进取就行:

这里因为传进去的数据是要可迭代的,所以在这里加了一个判断:

 

老样子,小眼睛要点开,然后发版:

那就模拟一个数据,来看看这个指令做出来的图片,就“一天中每隔两个小时北京与广州气温变化情况”吧:

运行结果: 

查看图片:

除了这个双折线图,我们还可以做多个图,比如条形图,散点图,饼图等,方法和上面是一致的,这样,我们需要绘制什么图,一拉一拽就可以实现:

在影刀里面,除了对实时抓取的数据进行可视化,还可以读取数据库的数据,excel数据,表格数据等...... 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐