License/copyright conditions for matplotlib figure output


I have a quick question about Matplotlib licensing/copyright. Do plots/figures made using Matplotlib inherit the license and copyright of the package (e.g. as “derivative works”), or is the user free to apply their own licence/copyright?



I’d argue that Matplotlib’s use does not extend to the resulting plots.

There are several reasons why early Matplotlib developers selected a BSD compatible license. Matplotlib is a python extension, and we choose a license that was based on the python license (BSD compatible). Also, we wanted to attract as many users and developers as possible, and many software companies will not use GPL code in software they plan to distribute, even those that are highly committed to open source development, such as enthought, out of legitimate concern that use of the GPL will “infect” their code base by its viral nature. In effect, they want to retain the right to release some proprietary code. Companies and institutions who use Matplotlib often make significant contributions, because they have the resources to get a job done, even a boring one. Two of the Matplotlib backends (FLTK and WX) were contributed by private companies. The final reason behind the licensing choice is compatibility with the other python extensions for scientific computing: ipython, numpy, scipy, the enthought tool suite and python itself are all distributed under BSD compatible licenses.

That said, I am not a lawyer and – if it’s of real concern – I’d suggest consulting one.

1 Like

Thanks @DaveL17 - your interpretation confirms my assumptions. Cheers

Regardless of BSD vs GPL, Matplotlib is a tool. Just as the license of a compiler does not affect the binaries that are created with it, the license of Matplotlib cannot affect its output (barring some very weird proprietary licensing, which is irrelevant here.)

1 Like

To be very clear, “derivative works” in this contexts means works that are modifications of or have Matplotlib as a dependency not the output of Matplotlib.

For example if you made batplotlib (a domain specific tool for plotting for visualizing bat data), either by forking Matplotlib and adding/removing code or by having Matplotlib has a dependency and distributing a copy with your code, batplotlib would be a “derivative work”. You would need to comply with our License but you (or your employer) would hold the copyright to any new code you wrote.

I am not a lawyer and as @DaveL17 said, if you have concerns about this you should consult with a lawyer (who is your lawyer) for legal advice.