@@ -1002,6 +1002,79 @@ subdirectory, but :file:`galleries/users_explain/artists` has a mix of
10021002any ``*.rst `` files to a ``:toctree: ``, either in the ``README.txt `` or in a
10031003manual ``index.rst ``.
10041004
1005+
1006+ .. _writing-user-guide :
1007+
1008+ Write user guide explanations
1009+ =============================
1010+
1011+ The pages in the user guide are a mix of :ref: `ReST <writing-rest-pages >` and
1012+ :ref: `sphinx gallery <writing-examples-and-tutorials >` pages and should
1013+ follow the respective formatting conventions. These pages are also intended to
1014+ explain how Matplotlib works to someone who is unfamiliar with the library. To
1015+ maintain the consistency and cohesiveness of the user guide, documentation
1016+ that is contributed to this section should conform to the following guidelines:
1017+
1018+ Purpose: Explain how to use Matplotlib
1019+ --------------------------------------
1020+
1021+ The aim of this guide is to teach the concepts of Matplotlib so that user can
1022+ understand how to fit the individual components of the library together.
1023+ Therefore content should be concept oriented rather than focused on specific
1024+ tasks, e.g. *What is a `Line2D` artist? * rather than *How do I make a yellow
1025+ squiggly line? *
1026+
1027+
1028+ Scope: Matplotlib objects and modules
1029+ -------------------------------------
1030+
1031+ Many concepts in Matplotlib assume a grounding in visualization, statistics, and
1032+ other topics to understand how they work. These concepts should be
1033+ contextualized using common terminilogy, but the focus should not stray from the
1034+ Matplotlib topic, e.g. *`Line2D` objects take as input either pairwise coordinates
1035+ (x,y) or y with an implicit x and assume that the input data is continuous. *
1036+ Here pairwise and continuous are not defined because they are assumed to be
1037+ known by the audience, but are used to explain what data ``Line2D `` accepts.
1038+
1039+
1040+ Audience: new users
1041+ -------------------
1042+
1043+ The audience for this guide is getting introduced to using Matplotlib through
1044+ this guide. Therefore content should be written with the assumption that the
1045+ reader does not yet know what Matplotlib calls a given visualization task or
1046+ how any task is accomplished in Matplotlib. Therefore each document should
1047+ always first introduce or define the object/module/concept that it is discussing
1048+ and why it is important for the reader. e.g. *The ``Line2`` class is an
1049+ abstraction of a line and the ``LineCollection`` class is an abstraction of a set
1050+ of lines. ``Line2D`` and ``LineCollection`` objects manage the properties and
1051+ behavior of almost every line in an image. This means that one way to modify a
1052+ line is to call methods on its underlying object. *
1053+
1054+
1055+ Teaching style: small chunks
1056+ ----------------------------
1057+
1058+ The material is introduced in small, usually one change or task at a time,
1059+ chunks to keep focus on the specific line of code enabling the given task. The
1060+ aim is that this breakdown will help in understanding what each specific object
1061+ does and build intuition in how the objects behave that will make the docs
1062+ easier to read. For example, here the line object is introduced, then there is
1063+ one example of using a method on the object, then there is a link out to further
1064+ functionality::
1065+
1066+ For example, here the ``plot`` method returns a line object ``ln``::
1067+
1068+ ln, _ = plt.plot([1,2,3])
1069+
1070+ One of the properties of a line is its color. It can be modified using the
1071+ ``set_color`` method of ``Line2D``::
1072+
1073+ ln.set_color('orange')
1074+
1075+ For a full list of methods see `~.Line2D`
1076+
1077+
10051078Miscellaneous
10061079=============
10071080
0 commit comments