Skip to main content
`Ctrl`+`K`

# vispy.visuals.scrolling_lines module

class vispy.visuals.scrolling_lines.ScrollingLinesVisual(n_lines, line_size, dx, color=None, pos_offset=None, columns=None, cell_size=None)

  Bases: `Visual`

  Displays many line strips of equal length, with the option to add new vertex data to one end of the lines.

  Parameters:
    n_lines int

      The number of independent line strips to draw.

    line_size int

      The number of samples in each line strip.

    dx float

      The x distance between samples

    color array-like

      An array of colors to assign to each line strip.

    pos_offset array-like

      An array of x, y position offsets to apply to each line strip.

    columns int

      Arrange line strips into a grid with this number of columns. This option is not compatible with pos_offset.

    cell_size tuple

      The x, y distance between cells in the grid.

  fragment_code = '\n varying vec2 v_index;\n varying vec4 v_color;\n \n void main() {\n if (v_index.y - floor(v_index.y) > 0) {\n discard;\n }\n gl_FragColor = $color;\n }\n '
  roll_data(data)

    Append new data to the right side of every line strip and remove as much data from the left.

    Parameters:
      data array-like

        A data array to append.

  set_color(color)

    Set the array of colors for each line strip.

    Parameters:
      color array-like

        An array of rgba values.

  set_data(index, data)

    Set the complete data for a single line strip.

    Parameters:
      index int

        The index of the line strip to be replaced.

      data array-like

        The data to assign to the selected line strip.

  set_pos_offset(po)

    Set the array of position offsets for each line strip.

    Parameters:
      po array-like

        An array of xy offset values.

  vertex_code = '\n attribute vec2 index; // .x=line_n, .y=vertex_n\n uniform sampler2D position;\n uniform sampler1D pos_offset;\n uniform sampler1D color_tex;\n \n uniform vec2 pos_size; // x=n_lines, y=n_verts_per_line\n uniform float offset; // rolling pointer into vertexes\n uniform float dx; // x step per sample\n \n varying vec2 v_index;\n varying vec4 v_color;\n \n \n void main() {\n v_index = vec2(mod(index.y + offset, pos_size.y), index.x);\n vec2 uv = (v_index + 0.5) / (pos_size.yx);\n vec4 pos = vec4(index.y * dx, texture2D(position, uv).r, 0, 1);\n \n // fetch starting position from texture lookup:\n pos += vec4(texture1D(pos_offset, (index.x + 0.5) / pos_size.x).rg,\n 0, 0); \n \n gl_Position = $transform(pos);\n \n v_color = texture1D(color_tex, (index.x + 0.5) / pos_size.x);\n }\n '