An Inkscape extension for drawing graphs and plots.
- Copy-paste from Excel: Data can be pasted directly from Excel spreadsheets.
- Logarithmic scales supported: Create both semi-log and log-log plots.
- Easy to edit: Since it runs in Inkscape, you can edit the graph directly after rendering. Adjusting axis labels, adding legends, and other customizations are simple.
Verified Inkscape version: 1.4.2
-
Download (or clone) this repository.
-
Open Edit > Preferences > System from the Inkscape menu and note the User Extensions folder path.
-
Move the downloaded folder into the folder noted in step 2.
(User Extensions)/ inkscape-plot/ plot.inx src/ main.py ... ... -
Restart Inkscape.
From the Inkscape menu, select Extensions > Render > Plot.
-
Paste the following data into the Data tab (delimiter: space):
# x y 0 0 1 2 2 4 3 6 4 8 -
X Axis tab: min=0, max=4 (linear)
-
Y Axis tab: min=0, max=8 (linear)
-
Plot tab: x column=1, y column=2
-
Click Apply
- Enter numerical data in the Data tab, separated by tabs.
- Lines starting with
#are treated as comments and ignored. - You can paste directly from Excel.
- Space-separated and comma-separated formats are also supported.
- Lines starting with
- In the X Axis and Y Axis tabs, set the range and tick intervals.
- You can choose between linear and logarithmic scales.
- In the Plot tab, specify which columns to use for x and y values, and choose a marker shape.
- In the Title & Frame tab, set the graph title and frame line style.
- Use the Render Items section at the bottom of the dialog to select what to draw (all are enabled by default).
- Click the Apply button to render the graph.
This extension renders only one data series per execution, but you can create multi-series graphs by running the extension multiple times to overlay plots.
Data:
# Time Temperature Humidity
1 20 60
2 22 58
3 24 55
-
Draw the temperature graph
- Data tab: Enter the data above
- X Axis tab: min=1, max=3
- Y Axis tab: min=0, max=30 (temperature range)
- Plot tab: x column=1, y column=2
- Render Items: Check all
-
Add humidity
- Data tab: (same as above)
- X Axis tab: (same as above)
- Y Axis tab: min=0, max=100 (humidity range), Placement/Outside offset (px)=90
- Plot tab: x column=1, y column=3
- Render Items: Check only "Y Axis" and "Plot"
- Restart Inkscape
- Verify that the installation folder is directly under the "User Extensions" folder
- Check that the page number is correct
- Verify that the target layer is not hidden
- Ensure the data values are within the axis ranges
- Verify the column numbers referenced in the Plot tab. Column numbering starts at 1
- Set the marker shape to something other than "(none)"
- Check the "Plot" option in Render Items
- Ensure the data does not contain values ≤ 0
- Verify that the axis minimum is not ≤ 0
Feel free to submit pull requests or issues if you have suggestions for improvements or find bugs.
uv sync
uv run ruff check . # Linting
uv run ruff format . # FormattingNote
The runtime environment created by uv differs from the actual runtime environment for running the extension. Therefore, external package dependencies cannot be added. Always test the extension in Inkscape to verify it works correctly.
© 2025 shiguri | MIT License
