Skip to content


By Saul Pwanson

v0.98 (2017-11-23)

Title: VisiData v0.98, now with graphs and maps (experimental)

When I announced that v0.97 was "feature complete", I must have been talking about vdtui.
vdtui has been pretty stable, even as VisiData has added a low-resolution pixel canvas
(using Braille unicode characters) to draw graphs and maps. In fact, apart from a few bug
fixes and small API changes, the only addition to vdtui in v0.98 is basic mouse support.

Here's a list of what's new in VisiData v0.98:

  • revamp

  • [canvas] graphs and maps!

    • . or g. to push a graph or a map from the current sheet (dot=plot)
    • supports .shp and vector .mbtiles
    • mouse left-click/drag to set cursor
    • mouse right-click/drag to scroll canvas
    • scrollwheel to zoom in/out on a canvas
    • s/u to select/unselect rows at canvas cursor
    • ENTER to push source sheet with only rows at canvas cursor
    • 1-9 to toggle display of 'layers' (colors)
    • _ to zoom out to full width
    • disp_pixel_random option chooses pixel attrs at random (weighted), instead of most common
    • +/- to zoom in/out via keyboard
  • Updates to commands

    • Remove ` (backtick) command
    • Remove most zscroll commands (zs/ze)
      • zz moves cursor to center, uncertain about the future of zt due to conflict with t for toggle
    • ga adds N new rows
    • gz= sets value for selected/all rows to a Python sequence in this column
    • z_ sets column width to given value
    • z- cuts column width in half
    • P is now "paste before" (like vim); R now pushes a random sample
    • ^Z now sends SIGSTOP; ^O "opens" the external $EDITOR (from builtin line editor)
    • [ColumnsSheet] Added ~!@#$ commands back, to set type of source columns
    • w is becoming a more universal "visibility toggle"
      • [TextSheet] w toggles wordwrap
      • [canvas] w toggles display of the labels
      • [pyobj] w toggles hidden properties and methods
  • Updates to command line args and options

    • set initial row/col with +<row#>:<col#> (numeric only)
    • --delimiter/-d option (separate from --csv-delimiter) sets delimiter for tsv filetype
    • --replay-wait/-w renamed from --delay/-d
    • disp_date_fmt option for date display format string (default is date-only)
    • zero_is_null/empty_is_null/none_is_null/false_is_null set which values are considered null (previously was aggr_null_filter)
    • --skiplines option renamed to --skip, and --headerlines to --header
  • Design improvements

    • Add specific rowtype for each sheet (see right status)
    • dates are a kind of numeric type (useful for graphing as the x-axis)
    • use_default_colors (at behest of @wavexx)
    • more robust Progress indicator
    • populate DescribeSheet in async thread
    • remove default names for unnamed columns
    • history up/down in edit widget now feels right
  • API changes

    • change main Column API to getter(col, row) and setter(col, row, val)
    • move Path and subclasses out of vdtui
    • TextSheet source is any iterable of strings
    • Sheet.filetype provides default save filename extension

Corporate Sponsors

Sponsor saulpw on Github