Modify display properties of data-series plots defined in stages.
⚠️ Note that this command can modify only data-series plots. It has no effect on image-type plots or any top-level plot definitions.
usage: dvc plots modify [-h] [-q | -v] [-t <name_or_path>] [-x <field>] [-y <field>] [--no-header] [--title <text>] [--x-label <text>] [--y-label <text>] [--unset [<property> [<property> ...]]] target positional arguments: target Plots file to set properties for (defined at the stage level)
It might be not convenient for users or automation systems to specify all the
display properties (such as
title, etc.) each time
plots are generated with
dvc plots show or
dvc plots diff. This command sets
(or unsets) default display properties for a specific plots file.
The path to the plots file
target is required. It must be listed in a
dvc.yaml file (see the
--plots option of
dvc stage add).
dvc plots modify adds the display properties to
Property names are passed as options to this command (prefixed with
--). These are based on the Vega-Lite
Note that a secondary use of this command is to convert output or simple
dvc metrics file into a plots file (see an
-t <name_or_path>, --template <name_or_path>- set a default plot template.
-x <field>- set a default field or column name (or number) from which the X axis data comes from.
-y <field>- set a default field or column name (or number) from which the Y axis data comes from.
--x-label <text>- set a default title for the X axis.
--y-label <text>- set a default title for the Y axis.
--title <text>- set a default plot title.
--unset [<property> [<property> ...]]- unset one or more display properties. Use the property name(s) without
--in the argument sent to this option.
--no-header- lets DVC know that the
targetCSV or TSV does not have a header. A 0-based numeric index can be used to identify each column instead of names.
--help- prints the usage/help message, and exit.
--quiet- do not write anything to standard output. Exit with 0 if no problems arise, otherwise 1.
--verbose- displays detailed tracing information.
The initial plot was showing the last column of CSV file by default which is loss metrics while accuracy is expected as Y axis:
epoch,accuracy,loss 0,0.9403833150863647,0.2019129991531372 1,0.9733833074569702,0.08973673731088638 2,0.9815833568572998,0.06529958546161652 3,0.9861999750137329,0.04984375461935997 4,0.9882333278656006,0.041892342269420624
$ dvc plots show logs.csv file:///Users/usr/src/myclassifier/logs.html
Changing the y-axis to accuracy:
$ dvc plots modify logs.csv -y accuracy $ dvc plots show logs.csv file:///Users/usr/src/myclassifier/logs.html
Note that a new field y was added to
dvc.yaml file for the plot. Make sure
to commit the change in Git if the modification needs to be preserved.
plots: - logs.csv: cache: false y: accuracy
Changing the plot
$ dvc plots modify logs.csv --title Accuracy -x epoch --x-label Epoch $ dvc plots show logs.csv file:///Users/usr/src/myclassifier/logs.html
Two new fields were added to
plots: - plots.csv: cache: false y: accuracy x_label: epoch title: Accuracy
Example: Template change
dvc stage add --plots file.csv ... assigns the default
template, which needs to be changed in many cases. This command can do so:
$ dvc plots modify classes.csv --template confusion
Example: Convert any output into a plot
Let's take an example
evaluate stage which has
logs.csv as an output. We can
dvc plots modify to convert the
logs.csv output file into a plots file,
and then confirm the changes that happened in
$ dvc plots modify logs.csv
evaluate: cmd: python src/evaluate.py deps: - src/evaluate.py - outs: - - logs.csv plots: - scores.json + - logs.csv