Skip to content
Discussion options

You must be logged in to vote

This is due to CORS protection, where your browser prevents reading back from an image that was "tainted" by potentially unsafe sources.

If you can make the images accessible with the crossOrigin: "anonymous" option (https://observablehq.com/plot/marks/image#image-options), it will work. Usually the way to do so is to use a cors proxy.

The code would then look like this:

Plot.plot({
  y: { type: "log" },
  r: { range: [0, 100] },
  marks: [
    Plot.image(
      data.filter((f) => f.url && name !== "Холидей"),
      {
        x: "date",
        y: "mass",
        r: "size",
        src: d => `https://{corsproxy}/?url=${encodeURIComponent(d.url)}`,
        crossOrigin: "anonymous"
      }
…

Replies: 1 comment 1 reply

Comment options

Fil
Jul 9, 2026
Collaborator

You must be logged in to vote
1 reply
@quillcraft
Comment options

Answer selected by quillcraft
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants