跳转到主要内容

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

项目描述

jupyterplot

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

这是什么?

它将Andreas Madsen的优秀python-lrcurve机器学习库推广到实时生成任意函数的可视化。

single-plot

安装

pip安装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的范围会适应新的数据点。如果事先知道刻度,则事先设置它可能更稳定。

pp = ProgressPlot(x_lim=[0, 1000], y_lim=[-1.5, 1.5])
for i in range(1000):
    pp.update(np.sin(i / 100))
pp.finalize()

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),其中x是一个整数或浮点数,y的格式与前面的示例相同。

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轴更新可以是列表或字典。

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()对象。
  • 每个子图必须有相同数量的行。
  • 每个子图使用相同的颜色周期。

项目详情


下载文件

下载适用于您平台的应用程序。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

jupyterplot-0.0.3.tar.gz (11.2 kB 查看哈希值)

上传时间

构建分布

jupyterplot-0.0.3-py3-none-any.whl (10.1 kB 查看哈希值)

上传时间 Python 3

支持者