visdom line画曲线(二)

目录

1、以list方式实现折线图

2、独立画两条曲线

3、x值缺省

4、同时画多条线

5、曲线添加删除修改

5、设置线性和颜色

6、设置下阴影效果


全局定义:

import visdom
import numpy as np

viz = visdom.Visdom(env="line test")

1、以list方式实现折线图

def line_test1():
    import visdom
    viz = visdom.Visdom(env="line test1")

     viz.line(
        X=[1, 2, 3, 4],  # x坐标
        Y=[1, 4, 9, 16],  # y值
        win="line1",  # 窗口id
        name="test line",  # 线条名称
        update='append',  # 以添加方式加入
        opts={
            'showlegend': True,  # 显示网格
            'title': "Demo line in Visdom",
            'xlabel': "x1",  # x轴标签
            'ylabel': "y1",  # y轴标签
        },
    )

结果:

注意:append方式添加数据会被保存在session中,要删除之前append的数据,使用vis.close()关闭后,再打开即清楚。

2、独立画两条曲线

def line_test2():
    import visdom
    viz = visdom.Visdom(env="line test1")

    # Example for Latex Support
    viz.line(
        X=[1, 2, 3, 4],  # x坐标
        Y=[1, 4, 9, 16],  # y值
        win="line1",  # 窗口id
        name="test line1",  # 线条名称
        update=None,  # 已添加方式加入
        opts={
            'showlegend': True,  # 显示网格
            'title': "Demo line in Visdom",
            'xlabel': "x1",  # x轴标签
            'ylabel': "y1",  # y轴标签
        },
    )

    viz.line(
        X=[1, 2, 3, 4],
        Y=[0.5, 2, 4.5, 8],
        win="line1",
        name="test line2",
        update='append',
    )

结果:

3、x值缺省

viz.line(Y=np.random.rand(10), 
        opts=dict(showlegend=True))

结果:

4、同时画多条线

name = ['y=x^2', 'y=kx+b']
X = np.linspace(-5, 5, 100)  # (100,)
viz.line(
    Y=np.column_stack((X * X, np.sqrt(X + 5))),  # (100, 2)
    X=np.column_stack((X, X)),  # (100, 2)
    opts=dict(markers=False, legend=name),
)

结果:

5、曲线添加删除修改

1)画直线

win = viz.line(
    X=np.column_stack((np.arange(0, 10), np.arange(0, 10))), # (10, 2)
    Y=np.column_stack((np.linspace(5, 10, 10),
                       np.linspace(5, 10, 10) + 5)), # (10, 2)
)

结果:

2)添加

viz.line(
    X=np.column_stack((np.arange(10, 20), np.arange(10, 20))),
    Y=np.column_stack((np.linspace(5, 10, 10),
                       np.linspace(5, 10, 10) + 5)),
    win=win,
    update='append'
)

结果:

3)单值添加,添加时以name区分是哪条线

viz.line(
    X=np.arange(21, 30),
    Y=np.arange(1, 10),
    win=win,
    name='2',  # 默认名字1,2,3...
    update='append'
)
viz.line(
    X=np.arange(1, 10),
    Y=np.arange(11, 20),
    win=win,
    name='delete this', # 新加
    update='append'
)

结果:

4)完全重叠曲线,用insert

viz.line(
    X=np.arange(1, 10),
    Y=np.arange(11, 20),
    win=win,
    name='4',
    update='insert'
)

结果:

5)删除指定曲线

name为线唯一标识,update指定为remove方式。

viz.line(X=None, Y=None, win=win, name='delete this', update='remove')

结果:

5、设置线性和颜色

1)画三条线

win = viz.line(
    X=np.column_stack((
        np.arange(0, 10),
        np.arange(0, 10),
        np.arange(0, 10),
    )),
    Y=np.column_stack((
        np.linspace(5, 10, 10),
        np.linspace(5, 10, 10) + 5,
        np.linspace(5, 10, 10) + 10,
    )),
    opts={
        'dash': np.array(['solid', 'dash', 'dashdot']),
        'linecolor': np.array([
            [0, 191, 255],
            [0, 191, 255],
            [255, 0, 0],
        ]),
        'title': 'Different line dash types'
    }
)

结果:

2)添加单条曲线

viz.line(
    X=np.arange(0, 10),
    Y=np.linspace(5, 10, 10) + 15,
    win=win,
    name='4',
    update='insert',
    opts={
        'linecolor': np.array([
            [255, 0, 0],
        ]),
        'dash': np.array(['dot']),
    }
)

结果:

6、设置下阴影效果

X = np.linspace(0, 4, 200)
win = viz.line(
    Y=np.column_stack((np.sqrt(X), np.sqrt(X) + 2)),  # (200, 2)
    X=np.column_stack((X, X)),  # (200, 2)
    opts=dict(
        fillarea=True,
        showlegend=False,
        width=800,
        height=800,
        xlabel='Time',
        ylabel='Volume',
        ytype='log',
        title='Stacked area plot',
        marginleft=30,
        marginright=30,
        marginbottom=80,
        margintop=30,
    ),
)
# 调整画布大小
# Assure that the stacked area plot isn't giant
viz.update_window_opts(
    win=win,
    opts=dict(
        width=300,
        height=300,
    ),
)

结果:

参考:

https://github.com/fossasia/visdom/blob/master/example/demo.py

visdom可视化系列文章目录:

1、visdom介绍(一)

2、visdom文件下载慢问题处理 downloading scripts, this may take a little while

3、visdom line画曲线(二)

4、visdom text显示文本(三)

5、visdom image显示图像(四)

6、visdom scatter散点图(五)

7、visdom bar柱状图(六)

8、visdom other(七)-直方图、热力图、饼图、逐像素

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jingbo1801

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值