Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 30fdf05

Browse files
committed
WIP: start to draft mission statement and justification
1 parent d2ee3d5 commit 30fdf05

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

doc/users/matplotlib.rst

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
Matplotlib's Mission
2+
====================
3+
4+
Matplotlib aims to be the foundational plotting library for the Scientific
5+
Python Ecosystem.
6+
7+
8+
9+
It has been over a decade since John Hunter wrote :ref:`History` and the world
10+
has changed. Python is no longer a fringe language in science but is now one
11+
of the most widely used languages in science and data science. Python, and
12+
Matplotlib, are now regularly taught in schools and used in research both at
13+
the inididivual grad student scale to the Mars helicopter [CITE]. Data
14+
structures that are now considered standard, such as pandas.DataFrame or
15+
xarray.DataArray, did not yet exist. Over that time there has also developed a
16+
number of domain-specific plotting libraries extending Matplotlib. The
17+
packaging ecosystem in Python has gotten much better than it was a decade ago,
18+
expecting users to install Matplotlib and several extensions is more reasonable
19+
than it was. In light of the changes to the world it is worth re-addressing
20+
the Matplotlib's role in the wider Scientific Python Ecosystem.
21+
22+
23+
To paraphrase from JDH's original requirements, Matplotlib should:
24+
25+
* Produce publication quality output (including vector formats);
26+
* Be embeddedable in graphical user interfaces for application development;
27+
* Code be understandable and extendable by scientists and data scientists;
28+
* Support users across all fields of science and industry;
29+
* Easy things should be easy;
30+
* Hard things should be possible.
31+
32+
Unfortunately, these goals have inherent tension. "Easy", while subjective and
33+
context dependent, it can be understood as how little work the user has to do
34+
to get from data to a visualization. How much work the user has to do depends
35+
on how well aligned the assumptions the library makes about what the user wants
36+
to do. However, given the broad range of domains where Matplotlib is used,
37+
from time series analysis to statistics or from image analysis to mapping, it
38+
is very easy to make assumptions that work well for one application that are
39+
catastrophically wrong for another! To all of our users we need to think of
40+
Matplotlib as not just the core library, but also including the domain specific
41+
plotting libraries built on and around us.
42+
43+
44+
To this end, Matplotlib's role in the ecosystem is to provide the tools to build
45+
the tools that users will use.

0 commit comments

Comments
 (0)