SourceForge logo
SourceForge logo
Menu

matplotlib-devel — matplotlib developers

You can subscribe to this list here.

2003 Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
(1)
Nov
(33)
Dec
(20)
2004 Jan
(7)
Feb
(44)
Mar
(51)
Apr
(43)
May
(43)
Jun
(36)
Jul
(61)
Aug
(44)
Sep
(25)
Oct
(82)
Nov
(97)
Dec
(47)
2005 Jan
(77)
Feb
(143)
Mar
(42)
Apr
(31)
May
(93)
Jun
(93)
Jul
(35)
Aug
(78)
Sep
(56)
Oct
(44)
Nov
(72)
Dec
(75)
2006 Jan
(116)
Feb
(99)
Mar
(181)
Apr
(171)
May
(112)
Jun
(86)
Jul
(91)
Aug
(111)
Sep
(77)
Oct
(72)
Nov
(57)
Dec
(51)
2007 Jan
(64)
Feb
(116)
Mar
(70)
Apr
(74)
May
(53)
Jun
(40)
Jul
(519)
Aug
(151)
Sep
(132)
Oct
(74)
Nov
(282)
Dec
(190)
2008 Jan
(141)
Feb
(67)
Mar
(69)
Apr
(96)
May
(227)
Jun
(404)
Jul
(399)
Aug
(96)
Sep
(120)
Oct
(205)
Nov
(126)
Dec
(261)
2009 Jan
(136)
Feb
(136)
Mar
(119)
Apr
(124)
May
(155)
Jun
(98)
Jul
(136)
Aug
(292)
Sep
(174)
Oct
(126)
Nov
(126)
Dec
(79)
2010 Jan
(109)
Feb
(83)
Mar
(139)
Apr
(91)
May
(79)
Jun
(164)
Jul
(184)
Aug
(146)
Sep
(163)
Oct
(128)
Nov
(70)
Dec
(73)
2011 Jan
(235)
Feb
(165)
Mar
(147)
Apr
(86)
May
(74)
Jun
(118)
Jul
(65)
Aug
(75)
Sep
(162)
Oct
(94)
Nov
(48)
Dec
(44)
2012 Jan
(49)
Feb
(40)
Mar
(88)
Apr
(35)
May
(52)
Jun
(69)
Jul
(90)
Aug
(123)
Sep
(112)
Oct
(120)
Nov
(105)
Dec
(116)
2013 Jan
(76)
Feb
(26)
Mar
(78)
Apr
(43)
May
(61)
Jun
(53)
Jul
(147)
Aug
(85)
Sep
(83)
Oct
(122)
Nov
(18)
Dec
(27)
2014 Jan
(58)
Feb
(25)
Mar
(49)
Apr
(17)
May
(29)
Jun
(39)
Jul
(53)
Aug
(52)
Sep
(35)
Oct
(47)
Nov
(110)
Dec
(27)
2015 Jan
(50)
Feb
(93)
Mar
(96)
Apr
(30)
May
(55)
Jun
(83)
Jul
(44)
Aug
(8)
Sep
(5)
Oct
Nov
(1)
Dec
(1)
2016 Jan
Feb
Mar
(1)
Apr
May
Jun
(2)
Jul
Aug
(3)
Sep
(1)
Oct
(3)
Nov
Dec
2017 Jan
Feb
(5)
Mar
Apr
May
Jun
Jul
(3)
Aug
Sep
(7)
Oct
Nov
Dec
2018 Jan
Feb
Mar
Apr
May
Jun
Jul
(2)
Aug
Sep
Oct
Nov
Dec
S M T W T F S





1
(2)
2
(1)
3
(4)
4
(4)
5
6
(2)
7
(1)
8
9
(1)
10
(4)
11
(1)
12
13
(1)
14
(3)
15
(6)
16
(1)
17
(1)
18
(1)
19
20
21
(2)
22
(2)
23
(1)
24
(3)
25
(2)
26
(8)
27
28
29
30
(1)
31






Showing 1 results of 1

From: Drain, T. R (392P) <the...@jp...> - 2014年08月11日 14:34:03
Attachments: styles.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 
 
 <title>Plotting Styles — Monte Documentation</title>
 
 <link rel="stylesheet" href="styles_files/montedoc.css" type="text/css">
 <link rel="stylesheet" href="styles_files/pygments.css" type="text/css">
 
 </head>
 <body role="document">
 
 <div class="document">
 <div class="documentwrapper">
 <div class="bodywrapper">
 <div class="body" role="main">
 
 <div class="section" id="plotting-styles">
<span id="plot2d-styles"></span><h1>Plotting Styles</h1>
<div class="toctree-wrapper compound">
</div>
<p>MONTE styles allow you to customize the look of your plots easily and
to maintain a consistent style on a large number of plots. Styles are
used to control how plot elements look (color, marker style, line
style, font, etc.) and not how the plot is structured (line
vs. marker, which tick formatter to use, etc.).</p>
<p>They can be combined and chained together hierarchically. They can be
edited programmaticaly via the mpython command shell, using the MONTE
style editor GUI, or in a text editor.</p>
<p>All of these examples assume that you have imported the plot and style
manager into your script:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="kn">import</span> <span class="nn">mpylab</span>
<span class="kn">from</span> <span class="nn">mpy.plot.style</span> <span class="kn">import</span> <span class="n">mgr</span> <span class="k">as</span> <span class="n">smgr</span>
</pre></div>
</div>
<hr class="docutils">
<table class="monte-quicklink-table docutils" border="1">
<colgroup>
<col width="15%">
<col width="85%">
</colgroup>
</table>
<hr class="docutils">
<div class="section" id="overview">
<span id="plot2d-styles-overview"></span><h2>Overview</h2>
<p>The style system has two primary user interfaces: the style manager class,
and the style class. The style manager is responsible for creating styles,
applying styles to plots, saving and loading styles, and remembering
which styles were applied to which plots so they can be automatically
updated.</p>
<p>The style class is responsible for storing the set of properties to
change in the plot. Styles have a variety of display parameters,
applying to different parts of the plot. Each parameter can be set or
unset. When the style is applied to a plot, those parameters which
are set will be implemented; those parameters which are unset will be
ignored.</p>
<p>The structure of a style reflects the structure of a figure: in a figure,
there are usually several contained objects (for example, an Axes object,
a Line object, etc.). Likewise, in a style the parameters are organized by
the type of object they affect: there are portions that affect only Axes
objects, only Line objects, etc.</p>
<p>The main style structure has some default attributes (bgColor,
fgColor, line, patch, text) which apply to any appropriate plot
element. If you set a property in the text attribute of a style, it
will apply to any text in the plot (which is a nice way to control
fonts, colors, etc). The figure and axes attributes are used to
control specific parts of the plot (e.g. axes.xAxes applies just to
the X axis and axes.yAxes applies just to the Y axes).</p>
<p>The basic <a class="reference internal" href="http://monte/doc/current/source/mpy/plot/style/MplSubStyle.html#mpy-plot-style-mplsubstyle"><em>MplStyle</em></a> structure looks
like this:</p>
<blockquote>
<div><table class="docutils" border="1">
<colgroup>
<col width="15%">
<col width="20%">
<col width="65%">
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head"><strong>Property</strong></th>
<th class="head"><strong>Type</strong></th>
<th class="head"><strong>Description</strong></th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td>axes</td>
<td><a class="reference internal" href="http://monte/doc/current/userguide/plot2d/axes.html#plot2d-axes-styling"><em>Sub-Style</em></a></td>
<td>Controls how to style an Axes and
all it’s components.</td>
</tr>
<tr class="row-odd"><td>bgColor</td>
<td><a class="reference internal" href="http://monte/doc/current/userguide/plot2d/color.html#plot2d-color"><em>color</em></a></td>
<td>The default background color to use
for a sub-style if none is
is specified (i.e. the default
background color).</td>
</tr>
<tr class="row-even"><td>fgColor</td>
<td><a class="reference internal" href="http://monte/doc/current/userguide/plot2d/color.html#plot2d-color"><em>color</em></a></td>
<td>The default foreground color to use
for a sub-style if none is
is specified (i.e. the default
foreground color).</td>
</tr>
<tr class="row-odd"><td>figure</td>
<td><a class="reference internal" href="http://monte/doc/current/userguide/plot2d/figure.html#plot2d-figure-styling"><em>Sub-Style</em></a></td>
<td>Controls how to style a Figure.</td>
</tr>
<tr class="row-even"><td>line</td>
<td><a class="reference internal" href="http://monte/doc/current/userguide/plot2d/lines.html#plot2d-lines-styling"><em>Sub-Style</em></a></td>
<td>This specifies the style properties
for line elements plotted on an
Axes.</td>
</tr>
<tr class="row-odd"><td>patch</td>
<td><a class="reference internal" href="http://monte/doc/current/userguide/plot2d/patches.html#plot2d-patches-styling"><em>Sub-Style</em></a></td>
<td>This specifies the style properties
for patch elements plotted on an
Axes.</td>
</tr>
<tr class="row-even"><td>text</td>
<td><a class="reference internal" href="http://monte/doc/current/userguide/plot2d/text.html#plot2d-text-styling"><em>Sub-Style</em></a></td>
<td>The default text style to use.
Sub-style elements may override for
specific pieces of text.</td>
</tr>
</tbody>
</table>
</div></blockquote>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">The full list of available parameters can be found here:
<a class="reference internal" href="http://monte/doc/current/userguide/plot2d/style_index.html#plot2d-style-index"><em>Style Index</em></a></p>
</div>
<hr class="docutils">
</div>
<div class="section" id="style-creation">
<span id="plot2d-styles-create"></span><h2>Style Creation</h2>
<p>Styles are created by calling the manager create method with the name
of the style. Once the style has been created, set the parameters on
the style using the names of the style attributes (see the top level
style structure above for the possible names)</p>
<div class="highlight-python"><div class="highlight"><pre><span class="c"># Create the style</span>
<span class="n">style</span> <span class="o">=</span> <span class="n">smgr</span><span class="o">.</span><span class="n">create</span><span class="p">(</span> <span class="s">"Big Title"</span> <span class="p">)</span>
<span class="c"># Change the axes title font.</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">title</span><span class="o">.</span><span class="n">font</span><span class="o">.</span><span class="n">family</span> <span class="o">=</span> <span class="s">"sans-serif"</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">title</span><span class="o">.</span><span class="n">font</span><span class="o">.</span><span class="n">size</span> <span class="o">=</span> <span class="mi">24</span>
</pre></div>
</div>
<p>You can also pass a dictionary of style attributes to the create
method to create and initialize the style in one call. The keys of
the dictionary are the string form of the variable path: so the
variable style.this.parameter.path becomes the dictionary key
‘this.parameter.path’. The value associated with each key needs to be
of the proper type for the parameter; some require floating point
values, integers, booleans, or other strings.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="c"># Create the style</span>
<span class="n">style</span> <span class="o">=</span> <span class="n">smgr</span><span class="o">.</span><span class="n">create</span><span class="p">(</span> <span class="s">"Big Title"</span><span class="p">,</span> <span class="p">{</span>
 <span class="s">"axes.title.font.family"</span> <span class="p">:</span> <span class="s">"sans-serif"</span><span class="p">,</span>
 <span class="s">"axes.title.font.size"</span> <span class="p">:</span> <span class="mi">24</span><span class="p">,</span>
 <span class="p">}</span> <span class="p">)</span>
</pre></div>
</div>
<p>When defining a style, you can optionally name a parent style. When the
style is applied, the parent style is automatically applied first. This
means that a child style will overwrite the settings contained in the
parent style, if and when those styles conflict.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="c"># Create the style to make fonts larger and easier to read.</span>
<span class="n">s1</span> <span class="o">=</span> <span class="n">smgr</span><span class="o">.</span><span class="n">create</span><span class="p">(</span> <span class="s">"Big Text"</span> <span class="p">)</span>
<span class="n">s1</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">font</span><span class="o">.</span><span class="n">scale</span> <span class="o">=</span> <span class="mf">1.5</span>
<span class="c"># Create a new style, with a parent style</span>
<span class="n">s2</span> <span class="o">=</span> <span class="n">smgr</span><span class="o">.</span><span class="n">create</span><span class="p">(</span> <span class="s">'Presentation'</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="s">'Big Text'</span> <span class="p">)</span>
<span class="c"># Set something particular to the child style</span>
<span class="n">s2</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">width</span> <span class="o">=</span> <span class="mi">800</span>
<span class="n">s2</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">height</span> <span class="o">=</span> <span class="mi">600</span>
<span class="c"># Big Text will be applied before the other parts of Presentation</span>
<span class="n">smgr</span><span class="o">.</span><span class="n">apply</span><span class="p">(</span> <span class="n">fig</span><span class="p">,</span> <span class="s">'Presentation'</span> <span class="p">)</span>
</pre></div>
</div>
<p>It should be noted that in the above example the ‘Big Text’ style is
<em>not</em> overwritten when we create the ‘Presentation’ style. This is
because when we create styles in this manner, they are automatically
registered and stored in a style manager class. They can then be
access later by name.</p>
</div>
<div class="section" id="setting-attributes">
<h2>Setting Attributes</h2>
<p>Each Style object has a set of parameters affecting how plots are
displayed. The parameters are unset by default; they will not affect
the display of a plot unless they are set. In an existing style
object, you can use Python’s dot syntax to access and set parameters.</p>
<p>To access an already defined style, use the find() method on the manager</p>
<div class="highlight-python"><div class="highlight"><pre><span class="c"># Find a previous define dstyle</span>
<span class="n">style</span> <span class="o">=</span> <span class="n">smgr</span><span class="o">.</span><span class="n">find</span><span class="p">(</span> <span class="s">"Big Text"</span> <span class="p">)</span>
<span class="c"># Change some of the style attributes</span>
<span class="n">style</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">font</span><span class="o">.</span><span class="n">size</span> <span class="o">=</span> <span class="mi">16</span>
</pre></div>
</div>
</div>
<div class="section" id="applying-styles-to-a-plot">
<h2>Applying Styles to a Plot</h2>
<p>Styles can be applied to any matplotlib plot element (figures, axes,
axis, lines, etc). Applying the style to the figure is most common
use case. When you apply a style to a figure, it will search the
figure for various plot elements and axes and recursively apply the
same style to them (the same is true when calling apply only on the
axes).</p>
<p>The style attributes dictate which matplotlib elements are modified.
So the attribute axes.bgColor will only change the color of the axes
while the attribute figure.bgColor will change the background for the
figure.</p>
<p>Style are applied using the apply method on the manager. You can pass
in the style object or the name of the style to apply.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">fig</span><span class="p">,</span> <span class="n">ax</span> <span class="o">=</span> <span class="n">mpylab</span><span class="o">.</span><span class="n">subplots</span><span class="p">()</span>
<span class="n">lines</span> <span class="o">=</span> <span class="n">ax</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">],</span> <span class="p">[</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">]</span> <span class="p">)</span>
<span class="n">ax</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span> <span class="s">"This is the Title"</span> <span class="p">)</span>
<span class="c"># Create the style and set some fields</span>
<span class="n">style</span> <span class="o">=</span> <span class="n">smgr</span><span class="o">.</span><span class="n">create</span><span class="p">(</span> <span class="s">"Big Title"</span> <span class="p">)</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">title</span><span class="o">.</span><span class="n">font</span><span class="o">.</span><span class="n">family</span> <span class="o">=</span> <span class="s">"sans-serif"</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">title</span><span class="o">.</span><span class="n">font</span><span class="o">.</span><span class="n">size</span> <span class="o">=</span> <span class="mi">24</span>
<span class="c"># Apply the style to the figure.</span>
<span class="n">smgr</span><span class="o">.</span><span class="n">apply</span><span class="p">(</span> <span class="n">fig</span><span class="p">,</span> <span class="n">style</span> <span class="p">)</span>
<span class="c"># Apply a list of styles to just the lines.</span>
<span class="n">smgr</span><span class="o">.</span><span class="n">apply</span><span class="p">(</span> <span class="n">lines</span><span class="p">,</span> <span class="p">[</span> <span class="s">"Dashed Lines"</span><span class="p">,</span> <span class="s">"Blue Lines"</span><span class="p">,</span> <span class="s">"Bold Lines"</span> <span class="p">]</span> <span class="p">)</span>
</pre></div>
</div>
<p>The style manager will recursively walk down through the input plot
element and apply the style. So if a plot contains four subplots, the
axes style will be applied to each of the four subplots and the text
style will apply to all the text in the plot. If you want to apply
the style only the input object (say an input figure), pass
recurse=False to the apply method.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="c"># Apply the style only to the figure</span>
<span class="n">smgr</span><span class="o">.</span><span class="n">apply</span><span class="p">(</span> <span class="n">fig</span><span class="p">,</span> <span class="s">'Figure Style'</span><span class="p">,</span> <span class="n">recurse</span><span class="o">=</span><span class="bp">False</span> <span class="p">)</span>
</pre></div>
</div>
</div>
<div class="section" id="updating-and-re-applying-styles">
<h2>Updating and Re-applying Styles</h2>
<p>When the manager applyes a style to the figure (or to any other other
plotting element), the manager will remember what style was applied to
which element, so if you later modify any styles, the changes can be
automatically applied to the plot elements by calling the reapply
method.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="c"># Modify the style</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">title</span><span class="o">.</span><span class="n">font</span><span class="o">.</span><span class="n">size</span> <span class="o">=</span> <span class="mi">16</span>
<span class="c"># Apply the update to everything that is currently using it.</span>
<span class="n">smgr</span><span class="o">.</span><span class="n">reapply</span><span class="p">()</span>
</pre></div>
</div>
<p>This will change the fonts from size 24 (the original “Big Title”
size) to the new size of 16 and update the plot. The reapply() method
will update any and all plots that have styes applied to them.</p>
</div>
<div class="section" id="saving-loading">
<h2>Saving &amp; Loading</h2>
<p>The style manager can be used to save and load styles to a persistent
form. Each style is saved into a file with the form
‘Style_Name.mpystyle’. Style files are human readable, Python files
and may be edited by the user. Styles are NOT automatically saved and
loaded by the manager (though that could change based on user
feedback).</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">Style names including a space ‘ ‘ will be changed to use an
underscore ‘_’ when saved as a .mpystyle file. For Example,
a style named “DSS 16” will be saved as “DSS_16.mpystyle”.</p>
</div>
<p>To save the current set of styles, use the manager save method. To
load all the available styles, use the load method.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="c"># Save the current styles to $HOME/.masar/styles</span>
<span class="n">smgr</span><span class="o">.</span><span class="n">save</span><span class="p">()</span>
<span class="c"># Save the current styles to the local directory.</span>
<span class="n">smgr</span><span class="o">.</span><span class="n">save</span><span class="p">(</span> <span class="s">"."</span> <span class="p">)</span>
<span class="c"># Load all available styles.</span>
<span class="n">smgr</span><span class="o">.</span><span class="n">load</span><span class="p">()</span>
</pre></div>
</div>
<p>When loading styles, the manager will use a search path that looks for
styles in the following order (high priority to low priority):</p>
<ol class="arabic simple">
<li>The current directory.</li>
<li>The user’s home directory: $HOME/.masar/styles/</li>
<li>The <a class="reference internal" href="http://monte/doc/current/source/Monte/index.html#monte"><em>Monte</em></a> installed data directory: $MONTEDIR/share/monte/styles</li>
</ol>
<p>Styles that are defined in more than one of these locations will use
the first definition. This way, each user can override and customize
certain <a class="reference internal" href="http://monte/doc/current/source/Monte/index.html#monte"><em>Monte</em></a> styles to their liking; they can also use different
directories to try out different style options in parallel. You can
change the list of directories to look in by modifying your STYLEPATH
environment variable.</p>
<p>You can also manipulate the loading and saving of styles in your
Python script directly. The “path” variable on the style manager is a
simple Python list of directory names. By changing the path, you can
change what styles are loaded:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="c"># Add a search path and load the styles.</span>
<span class="n">smgr</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> <span class="s">"/nav/proj/scripts/styles"</span> <span class="p">)</span>
<span class="n">smgr</span><span class="o">.</span><span class="n">load</span><span class="p">()</span>
</pre></div>
</div>
</div>
<div class="section" id="tagging-plot-elements">
<h2>Tagging Plot Elements</h2>
<p id="plot2d-styles-tags">Tagging or style tags are way to filter which plot elements (figure,
axes, lines, etc) a style is applied to by setting a tag (string name)
to a plot element. The script that creates the plot tags each element
with a name. When a style is applied to an element, the tag input can
be specified to limit which elements get changed.</p>
<p>Let’s say you have a plot that shows two lines for each DSN complex
(Goldstone, Canberra, and Madrid). The plotting script has access to
those lines and knows which complex they are a part of but the lines
are hard to get to after the plotting script is finished. If the
plotting script tags the lines with the complex name like this:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="k">def</span> <span class="nf">createPlot</span><span class="p">():</span>
 <span class="n">fig</span><span class="p">,</span> <span class="n">ax</span> <span class="o">=</span> <span class="n">mpylab</span><span class="o">.</span><span class="n">subplots</span><span class="p">()</span>
 <span class="c"># create data to plot, layout plot, etc.</span>
 <span class="n">l</span> <span class="o">=</span> <span class="n">ax</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span> <span class="n">gldX</span><span class="p">,</span> <span class="n">gldY</span> <span class="p">)</span>
 <span class="n">smgr</span><span class="o">.</span><span class="n">tag</span><span class="p">(</span> <span class="n">l</span><span class="p">,</span> <span class="s">"Goldstone"</span> <span class="p">)</span>
 <span class="n">l</span> <span class="o">=</span> <span class="n">ax</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span> <span class="n">madX</span><span class="p">,</span> <span class="n">madY</span> <span class="p">)</span>
 <span class="n">smgr</span><span class="o">.</span><span class="n">tag</span><span class="p">(</span> <span class="n">l</span><span class="p">,</span> <span class="s">"Madrid"</span> <span class="p">)</span>
 <span class="n">l</span> <span class="o">=</span> <span class="n">ax</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span> <span class="n">canX</span><span class="p">,</span> <span class="n">canY</span> <span class="p">)</span>
 <span class="n">smgr</span><span class="o">.</span><span class="n">tag</span><span class="p">(</span> <span class="n">l</span><span class="p">,</span> <span class="s">"Canberra"</span> <span class="p">)</span>
 <span class="k">return</span> <span class="n">fig</span>
</pre></div>
</div>
<p>The calling script can use those tags to apply styles to the
individual lines without having direct access to them. Both the
apply() and set() functions can use the tag keyword to filter which
elements are used.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">fig</span> <span class="o">=</span> <span class="n">createPlot</span><span class="p">()</span>
<span class="c"># Apply the 'Goldstone Style' to elements tagged Goldstone</span>
<span class="n">smgr</span><span class="o">.</span><span class="n">apply</span><span class="p">(</span> <span class="n">fig</span><span class="p">,</span> <span class="s">"Goldstone Style"</span><span class="p">,</span> <span class="n">tag</span><span class="o">=</span><span class="s">"Goldstone"</span> <span class="p">)</span>
<span class="c"># Change every line tagged Canberra to be blue.</span>
<span class="n">smgr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> <span class="n">fig</span><span class="p">,</span> <span class="p">{</span> <span class="s">'line.color'</span> <span class="p">:</span> <span class="s">'blue'</span> <span class="p">},</span> <span class="n">tag</span><span class="o">=</span><span class="s">"Canberra"</span> <span class="p">)</span>
</pre></div>
</div>
<p>Tags are a powerful tool that allows you to write complicated plotting
scripts and then control individual elements in those plots using
styles from outside the plotting script.</p>
</div>
<div class="section" id="setting-attributes-and-unmanaged-styles">
<span id="plot2d-styles-unmanaged"></span><h2>Setting Attributes and Unmanaged Styles</h2>
<p>The style system can also be used to quickly set plot attributes
without creating a style by calling the manager set() method. This
method can accept either a single style attribute or a dictionary of
style attributes and can use the tag system to filter which plot
elements are set.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="c"># Change the background color to black.</span>
<span class="n">smgr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> <span class="n">fig</span><span class="p">,</span> <span class="s">"bgColor"</span><span class="p">,</span> <span class="s">"black"</span> <span class="p">)</span>
<span class="c"># Change the multiple attributes.</span>
<span class="n">smgr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> <span class="n">fig</span><span class="p">,</span> <span class="p">{</span> <span class="s">"bgColor"</span> <span class="p">:</span> <span class="s">"black"</span><span class="p">,</span>
 <span class="s">"fgColor"</span> <span class="p">:</span> <span class="s">"white"</span><span class="p">,</span>
 <span class="s">"text.font.scale"</span> <span class="p">:</span> <span class="mf">1.25</span> <span class="p">}</span> <span class="p">)</span>
<span class="c"># Change lines tagged 'DSS 14' to gold.</span>
<span class="n">smgr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> <span class="n">fig</span><span class="p">,</span> <span class="s">"line.color"</span><span class="p">,</span> <span class="s">"gold"</span><span class="p">,</span> <span class="n">tag</span><span class="o">=</span><span class="s">"DSS 14"</span> <span class="p">)</span>
</pre></div>
</div>
<p>An “unmanaged” style can be created using the style constructor and
applied directly to a plot. The style manager will have no knowlege
of this style and so reapply will not work, and the style will not be
saved.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="kn">import</span> <span class="nn">mpy.plot.style</span> <span class="kn">as</span> <span class="nn">S</span>
<span class="c"># Unmanaged style - won't be saved.</span>
<span class="n">style</span> <span class="o">=</span> <span class="n">S</span><span class="o">.</span><span class="n">MplStyle</span><span class="p">(</span> <span class="s">'dummy'</span> <span class="p">)</span>
<span class="c"># Must use style.apply(), smgr.apply() won't work.</span>
<span class="n">style</span><span class="o">.</span><span class="n">apply</span><span class="p">(</span> <span class="n">fig</span> <span class="p">)</span>
</pre></div>
</div>
<hr class="docutils">
</div>
<div class="section" id="an-example">
<span id="plot2d-styles-example"></span><h2>An Example</h2>
<p>Following is a more complete example on how to make the plot at the top of
this page:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="c"># import some modules</span>
<span class="kn">import</span> <span class="nn">mpylab</span>
<span class="kn">from</span> <span class="nn">mpy.plot.style</span> <span class="kn">import</span> <span class="n">mgr</span> <span class="k">as</span> <span class="n">smgr</span>
<span class="c"># create the plot</span>
<span class="n">fig</span><span class="p">,</span> <span class="n">ax</span> <span class="o">=</span> <span class="n">mpylab</span><span class="o">.</span><span class="n">subplots</span><span class="p">()</span>
<span class="n">xdata</span> <span class="o">=</span> <span class="p">[</span> <span class="mi">1</span><span class="p">,</span> <span class="mf">1.5</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mf">2.5</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mf">3.5</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mf">4.5</span><span class="p">,</span> <span class="mf">4.75</span><span class="p">,</span> <span class="mi">5</span> <span class="p">]</span>
<span class="n">ydata</span> <span class="o">=</span> <span class="p">[</span> <span class="mi">1</span><span class="p">,</span> <span class="mf">1.75</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mf">2.75</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mf">2.75</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mf">2.25</span><span class="p">,</span> <span class="mf">2.75</span><span class="p">,</span> <span class="mi">3</span> <span class="p">]</span>
<span class="n">line</span> <span class="o">=</span> <span class="n">ax</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span> <span class="n">xdata</span><span class="p">,</span> <span class="n">ydata</span> <span class="p">)</span>
<span class="n">rect</span> <span class="o">=</span> <span class="n">mpylab</span><span class="o">.</span><span class="n">Rectangle</span><span class="p">(</span> <span class="p">(</span><span class="mf">2.8</span><span class="p">,</span> <span class="mf">1.0</span><span class="p">),</span> <span class="mf">0.4</span><span class="p">,</span> <span class="mf">1.2</span> <span class="p">)</span>
<span class="n">ax</span><span class="o">.</span><span class="n">add_patch</span><span class="p">(</span> <span class="n">rect</span> <span class="p">)</span>
<span class="n">figTitle</span> <span class="o">=</span> <span class="n">fig</span><span class="o">.</span><span class="n">suptitle</span><span class="p">(</span> <span class="s">"Figure Title"</span> <span class="p">)</span>
<span class="n">axTitle</span> <span class="o">=</span> <span class="n">ax</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span> <span class="s">"Axes Title"</span> <span class="p">)</span>
<span class="n">xLabel</span> <span class="o">=</span> <span class="n">ax</span><span class="o">.</span><span class="n">set_xlabel</span><span class="p">(</span> <span class="s">"X-Axis Label"</span> <span class="p">)</span>
<span class="n">yLabel</span> <span class="o">=</span> <span class="n">ax</span><span class="o">.</span><span class="n">set_ylabel</span><span class="p">(</span> <span class="s">"Y-Axis Label"</span> <span class="p">)</span>
<span class="n">figText</span> <span class="o">=</span> <span class="n">fig</span><span class="o">.</span><span class="n">text</span><span class="p">(</span> <span class="mf">0.02</span><span class="p">,</span> <span class="mf">0.02</span><span class="p">,</span> <span class="s">"FigureText"</span> <span class="p">)</span>
<span class="n">txt</span> <span class="o">=</span> <span class="n">ax</span><span class="o">.</span><span class="n">text</span><span class="p">(</span> <span class="mf">4.2</span><span class="p">,</span> <span class="mf">1.1</span><span class="p">,</span> <span class="s">"Text"</span> <span class="p">)</span>
<span class="c"># Create the style</span>
<span class="n">style</span> <span class="o">=</span> <span class="n">smgr</span><span class="o">.</span><span class="n">create</span><span class="p">(</span> <span class="s">"My Style"</span> <span class="p">)</span>
<span class="n">style</span><span class="o">.</span><span class="n">bgColor</span> <span class="o">=</span> <span class="s">'white'</span>
<span class="n">style</span><span class="o">.</span><span class="n">fgColor</span> <span class="o">=</span> <span class="s">'black'</span>
<span class="c"># Figure</span>
<span class="n">style</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">width</span> <span class="o">=</span> <span class="mi">10</span>
<span class="n">style</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">height</span> <span class="o">=</span> <span class="mi">10</span>
<span class="c"># Axes</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">axisBelow</span> <span class="o">=</span> <span class="bp">True</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">leftEdge</span><span class="o">.</span><span class="n">color</span> <span class="o">=</span> <span class="s">'magenta'</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">leftEdge</span><span class="o">.</span><span class="n">width</span> <span class="o">=</span> <span class="mi">5</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">leftEdge</span><span class="o">.</span><span class="n">style</span> <span class="o">=</span> <span class="s">'--'</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">bottomEdge</span><span class="o">.</span><span class="n">color</span> <span class="o">=</span> <span class="s">'magenta'</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">bottomEdge</span><span class="o">.</span><span class="n">width</span> <span class="o">=</span> <span class="mi">5</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">bottomEdge</span><span class="o">.</span><span class="n">style</span> <span class="o">=</span> <span class="s">'dashed'</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">topEdge</span><span class="o">.</span><span class="n">visible</span> <span class="o">=</span> <span class="bp">False</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">rightEdge</span><span class="o">.</span><span class="n">visible</span> <span class="o">=</span> <span class="bp">False</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">title</span><span class="o">.</span><span class="n">font</span><span class="o">.</span><span class="n">scale</span> <span class="o">=</span> <span class="mf">2.0</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">title</span><span class="o">.</span><span class="n">font</span><span class="o">.</span><span class="n">family</span> <span class="o">=</span> <span class="s">'sans-serif'</span>
<span class="c"># X-Axis</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">xAxis</span><span class="o">.</span><span class="n">autoscale</span> <span class="o">=</span> <span class="bp">True</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">xAxis</span><span class="o">.</span><span class="n">dataMargin</span> <span class="o">=</span> <span class="mf">0.1</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">xAxis</span><span class="o">.</span><span class="n">label</span><span class="o">.</span><span class="n">font</span><span class="o">.</span><span class="n">scale</span> <span class="o">=</span> <span class="mf">1.2</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">xAxis</span><span class="o">.</span><span class="n">majorTicks</span><span class="o">.</span><span class="n">labels</span><span class="o">.</span><span class="n">font</span><span class="o">.</span><span class="n">scale</span> <span class="o">=</span> <span class="mf">0.75</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">xAxis</span><span class="o">.</span><span class="n">majorTicks</span><span class="o">.</span><span class="n">marks</span><span class="o">.</span><span class="n">visible</span> <span class="o">=</span> <span class="bp">True</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">xAxis</span><span class="o">.</span><span class="n">majorTicks</span><span class="o">.</span><span class="n">grid</span><span class="o">.</span><span class="n">visible</span> <span class="o">=</span> <span class="bp">True</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">xAxis</span><span class="o">.</span><span class="n">majorTicks</span><span class="o">.</span><span class="n">grid</span><span class="o">.</span><span class="n">color</span> <span class="o">=</span> <span class="s">'#B0B0B0'</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">xAxis</span><span class="o">.</span><span class="n">majorTicks</span><span class="o">.</span><span class="n">grid</span><span class="o">.</span><span class="n">width</span> <span class="o">=</span> <span class="mf">1.5</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">xAxis</span><span class="o">.</span><span class="n">majorTicks</span><span class="o">.</span><span class="n">grid</span><span class="o">.</span><span class="n">style</span> <span class="o">=</span> <span class="s">':'</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">xAxis</span><span class="o">.</span><span class="n">majorTicks</span><span class="o">.</span><span class="n">length</span> <span class="o">=</span> <span class="mf">15.0</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">xAxis</span><span class="o">.</span><span class="n">majorTicks</span><span class="o">.</span><span class="n">width</span> <span class="o">=</span> <span class="mf">1.5</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">xAxis</span><span class="o">.</span><span class="n">minorTicks</span><span class="o">.</span><span class="n">marks</span><span class="o">.</span><span class="n">visible</span> <span class="o">=</span> <span class="bp">True</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">xAxis</span><span class="o">.</span><span class="n">minorTicks</span><span class="o">.</span><span class="n">grid</span><span class="o">.</span><span class="n">visible</span> <span class="o">=</span> <span class="bp">True</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">xAxis</span><span class="o">.</span><span class="n">minorTicks</span><span class="o">.</span><span class="n">grid</span><span class="o">.</span><span class="n">color</span> <span class="o">=</span> <span class="s">'#B0B0B0'</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">xAxis</span><span class="o">.</span><span class="n">minorTicks</span><span class="o">.</span><span class="n">grid</span><span class="o">.</span><span class="n">width</span> <span class="o">=</span> <span class="mf">0.5</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">xAxis</span><span class="o">.</span><span class="n">minorTicks</span><span class="o">.</span><span class="n">grid</span><span class="o">.</span><span class="n">style</span> <span class="o">=</span> <span class="s">':'</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">xAxis</span><span class="o">.</span><span class="n">minorTicks</span><span class="o">.</span><span class="n">length</span> <span class="o">=</span> <span class="mf">5.0</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">xAxis</span><span class="o">.</span><span class="n">minorTicks</span><span class="o">.</span><span class="n">width</span> <span class="o">=</span> <span class="mf">0.5</span>
<span class="c"># Y-Axis</span>
<span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">yAxis</span> <span class="o">=</span> <span class="n">style</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">xAxis</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
<span class="c"># Lines</span>
<span class="n">style</span><span class="o">.</span><span class="n">line</span><span class="o">.</span><span class="n">color</span> <span class="o">=</span> <span class="s">"blue"</span>
<span class="n">style</span><span class="o">.</span><span class="n">line</span><span class="o">.</span><span class="n">style</span> <span class="o">=</span> <span class="s">'dash-dot'</span>
<span class="n">style</span><span class="o">.</span><span class="n">line</span><span class="o">.</span><span class="n">width</span> <span class="o">=</span> <span class="mf">1.5</span>
<span class="n">style</span><span class="o">.</span><span class="n">line</span><span class="o">.</span><span class="n">marker</span><span class="o">.</span><span class="n">color</span> <span class="o">=</span> <span class="s">'red'</span>
<span class="n">style</span><span class="o">.</span><span class="n">line</span><span class="o">.</span><span class="n">marker</span><span class="o">.</span><span class="n">edgeColor</span> <span class="o">=</span> <span class="s">'green'</span>
<span class="n">style</span><span class="o">.</span><span class="n">line</span><span class="o">.</span><span class="n">marker</span><span class="o">.</span><span class="n">edgeWidth</span> <span class="o">=</span> <span class="mi">3</span>
<span class="n">style</span><span class="o">.</span><span class="n">line</span><span class="o">.</span><span class="n">marker</span><span class="o">.</span><span class="n">size</span> <span class="o">=</span> <span class="mi">20</span>
<span class="n">style</span><span class="o">.</span><span class="n">line</span><span class="o">.</span><span class="n">marker</span><span class="o">.</span><span class="n">style</span> <span class="o">=</span> <span class="s">'circle'</span>
<span class="n">style</span><span class="o">.</span><span class="n">line</span><span class="o">.</span><span class="n">marker</span><span class="o">.</span><span class="n">fill</span> <span class="o">=</span> <span class="s">'bottom'</span>
<span class="c"># Patches</span>
<span class="n">style</span><span class="o">.</span><span class="n">patch</span><span class="o">.</span><span class="n">color</span> <span class="o">=</span> <span class="s">'gold'</span>
<span class="n">style</span><span class="o">.</span><span class="n">patch</span><span class="o">.</span><span class="n">filled</span> <span class="o">=</span> <span class="bp">True</span>
<span class="n">style</span><span class="o">.</span><span class="n">patch</span><span class="o">.</span><span class="n">edgeColor</span> <span class="o">=</span> <span class="s">'purple'</span>
<span class="n">style</span><span class="o">.</span><span class="n">patch</span><span class="o">.</span><span class="n">edgeWidth</span> <span class="o">=</span> <span class="mi">5</span>
<span class="c"># Text</span>
<span class="n">style</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">lineSpacing</span> <span class="o">=</span> <span class="mf">1.0</span>
<span class="n">style</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">font</span><span class="o">.</span><span class="n">size</span> <span class="o">=</span> <span class="mi">12</span>
<span class="n">style</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">font</span><span class="o">.</span><span class="n">family</span> <span class="o">=</span> <span class="s">'monospace'</span>
<span class="c"># apply the style</span>
<span class="n">smgr</span><span class="o">.</span><span class="n">apply</span><span class="p">(</span> <span class="n">fig</span><span class="p">,</span> <span class="n">style</span> <span class="p">)</span>
</pre></div>
</div>
</div>
</div>
 </div>
 </div>
 </div>
 <div class="clearer"></div>
 </div>
 <div class="footer" role="contentinfo">
 © Copyright 2010, Caltech / Jet Propulsion Laboratory.
 Last updated on 2014年08月06日@15:41:36 PDT.
 Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3a0.
 </div>
 
</body></html>

Showing 1 results of 1

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.
Thanks for helping keep SourceForge clean.
X





Briefly describe the problem (required):
Upload screenshot of ad (required):
Select a file, or drag & drop file here.
Screenshot instructions:

Click URL instructions:
Right-click on the ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)

More information about our ad policies

Ad destination/click URL:

AltStyle によって変換されたページ (->オリジナル) /