在Jupyter笔记本中创建实时绘图。

jupyterplot的Python项目详细描述


朱皮特图

Create real-time plots in Jupyter notebooks.

这是什么?在

它概括了Andreas Madsen优秀的机器学习库{a1}来实时生成任意函数的可视化效果。在

single-plot

安装

pip install jupyterplot

如何使用

单点

在Jupyter笔记本电脑中创建一个简单的实时绘图与以下片段一样简单:

from jupyterplot import ProgressPlot
import numpy as np

pp = ProgressPlot()
for i in range(1000):
    pp.update(np.sin(i / 100))
pp.finalize()

single-plot

注意:必须使用pp.finalize()语句使绘图在笔记本会话之间持久化。在

自定义范围

默认情况下,x和y范围将适应新的数据点。如果事先知道比例尺,可以事先设定:

^{pr2}$

single-plot

多线

还可以通过在构造函数中指定行名称并在列表中传递所有值来并行绘制多行。在

pp = ProgressPlot(line_names=["lin", "log", "cos", "sin"],
                  x_lim=[0, 1000],
                  y_lim=[-1, 4])

for i in range(1000):
    pp.update([[i / 250, np.log10(i + 1), np.cos(i / 100), np.sin(i / 100)]])
pp.finalize()

single-plot

注意:数据以列表列表的形式提供给pp.update(),其中每个子列表对应于在每个子批次中生成的曲线。在

多个绘图

pp = ProgressPlot(plot_names=["cos", "sin"],
                  line_names=["data", "delayed-data"],
                  x_lim=[0, 1000],
                  y_lim=[-1, 1])

for i in range(1000):
    pp.update([[np.cos(i / 100), np.cos((i + 20) / 100)],
               [np.sin(i / 100), np.sin((i + 20) / 100)]])
pp.finalize()

single-plot

自定义x值

如果x值不应在每次更新时递增1,则可以设置x_iterator=False。这需要向update(x, y)传递两个值,其中xint或{},而{}的格式与前面的示例相同。在

pp = ProgressPlot(x_iterator=False, x_label="custom-x", x_lim=[0, 10000], y_lim=[0, 10])
for i in range(1000):
    pp.update(10 * i, i / 100)
pp.finalize()

single-plot

解耦y-极限

如果每个子批次应该有不同的y限制,那么y限制可以作为包含每个子批次限制的列表来传递。在

pp = ProgressPlot(plot_names=['plot 1', 'plot 2'], x_lim=[0, 1000], y_lim=[[0, 10],[0, 100]])
for i in range(1000):
    pp.update([[(i/100)], [(i/100)**2]])

single-plot

输入格式

单点,单线

如果进度图由一个带有单行线的单独绘图组成,则可以将y更新作为intfloat传递。在

多个图,多条线

如果使用多个绘图或线条,y更新可以是列表或dict:

y_update_list=[[y_plot_1_line_1,y_plot_1_line_2],[y_plot_2_line_1,y_plot_2_line_2]]y_update_dict={'plot_name_1':{'line_name_1':y_plot_1_line_1,'line_name_2':y_plot_1_line_2},'plot_name_2':{'line_name_1':y_plot_2_line_1,'line_name_2':y_plot_2_line_2}}

局限性

  • 一次只能使用一个ProgressPlot()对象。在
  • 每个子批次必须具有相同的行数。在
  • 每个子批次使用相同的颜色周期。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在没有代码气味的情况下编写遵循Liskov替代和其他可靠原则的不可变映射?   java最新jre上的压缩字符串对旧编译代码有好处吗?   java是否可以在javascript中取消PrimeFaces menuitem onclick函数   mysql从SQL数据库中访问java中xml名称空间标记的值   从java程序打开excel文件   java在方法中使用“var”是否会使执行(并发)线程不安全?   java使搜索视图以一种关于AndroidManifest的通用方式可用。xml   java对如何准确使用正则表达式感到困惑?   mule如何访问java文件中的记录变量   java在从2D数组引发异常后继续   枚举当前设置为的java值   java当listview只有几个项目时,如何使alert对话框显示listview的所有项目?   java getTableRow()返回大于项大小的索引   c用java传输二进制文件(数据)   java更改多选列表项复选框颜色