Kuva 是一款命令行科学绘图工具,支持从 stdin、CSV 或 TSV 读取表格数据,并生成 27 种图表类型,包括 scatter、line、bar、histogram、pie、box、violin、strip、density、ridgeline、heatmap、sankey、chord、upset、volcano、manhattan、forest、candlestick 等。输出格式由 -o 参数的扩展名推断,支持 .png、.svg 和 .pdf。
使用方式上,推荐通过 DuckDB 管道输入数据,而非直接传文件,因为 DuckDB 可处理脏数据(ignore_errors=true)、做 CAST 与聚合,并避免中间文件。管道输入时不要给 kuva 传文件参数,否则会读取文件而非 stdin。例如用 duckdb 查询后通过管道传给 kuva bar,并指定 --label-col、--value-col、--theme、--color、--background、--title 和 -o 输出。
样式方面,所有图表支持 --theme(light、dark、solarized、minimal)、--palette(category10、wong、okabe-ito、pastel、bold、tol-bright、tol-muted、tol-light、ibm)、--cvd-palette、--background、--x-label、--y-label、--ticks、--no-grid、--log-x/y、--interactive(仅 SVG)、--width、--height、--scale、--title。单色图表用 --color 设置统一颜色;多系列图表用 --color-by 加 --palette,但并非所有图表类型都支持;饼图用 --palette,且不支持 --agg,需先用 DuckDB 聚合。
限制方面:strip 图不支持管道输入,只能用文件;--terminal 与 -o 文件输出不兼容;--color-by 会覆盖 --color,--count-by 会忽略 --value-col;列名含空格需加引号;折线图要求 x 轴为数值,日期需在 DuckDB 中转换。CLI 不支持自定义主题,仅 4 种内置主题。使用前可用 kuva <chart> --help 查看各图表参数。