Skip to content

Images and Plots

Image blocks let you embed figures, photos, and diagrams directly in your notebook alongside your notes and code. Code blocks automatically capture matplotlib plots and display them inline — write the code, run it, and the figure appears.

Insert an image block using the /image command in a markdown block, or click the + button between blocks and select Image.

You can add images three ways:

  • Upload — click Upload images or the + Add Images button to select files from your computer
  • Drag and drop — drag image files directly onto the block
  • Paste from clipboard — copy an image and paste it (Ctrl+V / Cmd+V) into the block

Supported formats: JPEG, PNG, WebP, and GIF. Files up to 20 MB are accepted and automatically compressed for fast loading.

When you add multiple images to a single block, they tile automatically based on their aspect ratios.

  • Reposition — drag any image to move it. Alignment guides appear to help you place it precisely.
  • Resize — drag the handles on corners or edges to resize. Aspect ratio is preserved.
  • Multi-select — Shift+click to select multiple images and move them together.

Click the ⋮ menu on an individual image to Replace or Delete it. You can also select an image and press Delete or Backspace.

Deleted images are recoverable for 7 days before permanent removal.

Write Python code in a code block and any matplotlib figures are captured automatically when the cell runs. No extra steps required — just create the figure and it appears as output.

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
plt.figure(figsize=(8, 4))
plt.plot(x, np.sin(x), label='sin(x)')
plt.plot(x, np.cos(x), label='cos(x)')
plt.xlabel('x')
plt.legend()
plt.title('Trig Functions')
plt.show()

All open figures are captured at the end of execution, so you can create multiple plots in a single cell and each one renders as a separate image in the output.

Any plotting library that builds on matplotlib works:

  • matplotlib — the standard; figures are captured automatically
  • seaborn — statistical visualization (uses matplotlib under the hood)
  • pandas plottingdf.plot() creates matplotlib figures and they are captured the same way

NumPy is pre-installed. Other packages install automatically the first time you import them (see Code Execution for details).

You can attach images to messages in the AI chat panel. Click the attachment icon in the chat input, select an image, and the AI can view and discuss it — useful for asking about a gel image, a plot, or a figure from a paper.

Hover over any image block to reveal the toolbar. Use the ⋮ menu for:

  • Move up / Move down — reorder the block within the notebook
  • Duplicate — clone the block and all its images
  • Delete — remove the block
Ask CoPI

Ask me anything about CoPI — notebooks, code execution, AI features, and more.