热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

visdomline画曲线(二)

目录1、以list方式实现折线图2、独立画两条曲线3、x值缺省4、同时画多条线5、曲线添加删除修改5、设置线性和颜色6、设置下阴影效果全局定义:importvisdomimport

目录

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轴标签
},
)

结果:

《visdom line画曲线(二)》

注意: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',
)

结果:

《visdom line画曲线(二)》

3、x值缺省

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

结果:

《visdom line画曲线(二)》

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),
)

结果:

《visdom line画曲线(二)》

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)
)

结果:

《visdom line画曲线(二)》

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'
)

结果:

《visdom line画曲线(二)》

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'
)

结果:

《visdom line画曲线(二)》

4)完全重叠曲线,用insert

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

结果:

《visdom line画曲线(二)》

5)删除指定曲线

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

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

结果:

《visdom line画曲线(二)》

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'
}
)

结果:

《visdom line画曲线(二)》

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']),
}
)

结果:

《visdom line画曲线(二)》

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,
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(
https://img7.php1.cn/3cdc5/cc8a/c5a/6e9ba91c9f77c4c6.jpeg" src="https://img7.php1.cn/3cdc5/cc8a/c5a/6e9ba91c9f77c4c6.jpeg" alt="《visdom line画曲线(二)》" />

参考:

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(七)-直方图、热力图、饼图、逐像素


推荐阅读
  • OpenMap教程4 – 图层概述
    本文介绍了OpenMap教程4中关于地图图层的内容,包括将ShapeLayer添加到MapBean中的方法,OpenMap支持的图层类型以及使用BufferedLayer创建图像的MapBean。此外,还介绍了Layer背景标志的作用和OMGraphicHandlerLayer的基础层类。 ... [详细]
  • STL迭代器的种类及其功能介绍
    本文介绍了标准模板库(STL)定义的五种迭代器的种类和功能。通过图表展示了这几种迭代器之间的关系,并详细描述了各个迭代器的功能和使用方法。其中,输入迭代器用于从容器中读取元素,输出迭代器用于向容器中写入元素,正向迭代器是输入迭代器和输出迭代器的组合。本文的目的是帮助读者更好地理解STL迭代器的使用方法和特点。 ... [详细]
  • 本文介绍了Python字典视图对象的示例和用法。通过对示例代码的解释,展示了字典视图对象的基本操作和特点。字典视图对象可以通过迭代或转换为列表来获取字典的键或值。同时,字典视图对象也是动态的,可以反映字典的变化。通过学习字典视图对象的用法,可以更好地理解和处理字典数据。 ... [详细]
  • 本文介绍了利用ARMA模型对平稳非白噪声序列进行建模的步骤及代码实现。首先对观察值序列进行样本自相关系数和样本偏自相关系数的计算,然后根据这些系数的性质选择适当的ARMA模型进行拟合,并估计模型中的位置参数。接着进行模型的有效性检验,如果不通过则重新选择模型再拟合,如果通过则进行模型优化。最后利用拟合模型预测序列的未来走势。文章还介绍了绘制时序图、平稳性检验、白噪声检验、确定ARMA阶数和预测未来走势的代码实现。 ... [详细]
  • 颜色迁移(reinhard VS welsh)
    不要谈什么天分,运气,你需要的是一个截稿日,以及一个不交稿就能打爆你狗头的人,然后你就会被自己的才华吓到。------ ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文详细介绍了PHP中与URL处理相关的三个函数:http_build_query、parse_str和查询字符串的解析。通过示例和语法说明,讲解了这些函数的使用方法和作用,帮助读者更好地理解和应用。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 摘要: 在测试数据中,生成中文姓名是一个常见的需求。本文介绍了使用C#编写的随机生成中文姓名的方法,并分享了相关代码。作者欢迎读者提出意见和建议。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 很多时候在注册一些比较重要的帐号,或者使用一些比较重要的接口的时候,需要使用到随机字符串,为了方便,我们设计这个脚本需要注意 ... [详细]
author-avatar
手机电视2602907765
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有