.. _moduleGraph:

music21.graph
=============

.. WARNING: DO NOT EDIT THIS FILE: AUTOMATICALLY GENERATED. Edit the .py file directly

.. module:: music21.graph


Object definitions for graphing and
plotting :class:`~music21.stream.Stream` objects.
The :class:`~music21.graph.Graph` object subclasses
abstract fundamental graphing archetypes using the
matplotlib library. The :class:`~music21.graph.Plot`
object subclasses provide reusable approaches
to graphing data and structures in
:class:`~music21.stream.Stream` objects.




.. function:: getColor(color)

    Convert any specification of a color to a hexadecimal color used by matplotlib.



    >>> from music21 import *
    >>> graph.getColor('red')
    '#ff0000'
    >>> graph.getColor('Steel Blue')
    '#4682b4'
    >>> graph.getColor('#f50')
    '#ff5500'
    >>> graph.getColor([.5, .5, .5])
    '#808080'
    >>> graph.getColor(.8)
    '#cccccc'
    >>> graph.getColor([255, 255, 255])
    '#ffffff'



.. function:: plotStream(streamObj, *args, **keywords)

    Given a stream and any keyword configuration arguments, create and display a plot.

    Note: plots requires matplotib to be installed.

    Plot methods can be specified as additional arguments or by keyword.
    Two keyword arguments can be given: `format` and `values`.
    If positional arguments are given, the first is taken as `format`
    and the rest are collected as `values`. If `format` is the class
    name, that class is collected. Additionally, every
    :class:`~music21.graph.PlotStream` subclass defines one `format`
    string and a list of `values` strings. The `format` parameter
    defines the type of Graph (e.g. scatter, histogram, colorGrid). The
    `values` list defines what values are graphed
    (e.g. quarterLength, pitch, pitchClass).

    If a user provides a `format` and one or more `values` strings, a plot with the corresponding profile, if found, will be generated. If not, the first Plot to match any of the defined specifiers will be created.

    In the case of :class:`~music21.graph.PlotWindowedAnalysis` subclasses, the :class:`~music21.analysis.discrete.DiscreteAnalysis` subclass :attr:`~music21.analysis.discrete.DiscreteAnalysis.indentifiers` list is added to the Plot's `values` list.

    Available plots include the following:

    * :class:`~music21.graph.PlotHistogramPitchSpace`
    * :class:`~music21.graph.PlotHistogramPitchClass`
    * :class:`~music21.graph.PlotHistogramQuarterLength`
    * :class:`~music21.graph.PlotScatterPitchSpaceQuarterLength`
    * :class:`~music21.graph.PlotScatterPitchClassQuarterLength`
    * :class:`~music21.graph.PlotScatterPitchClassOffset`
    * :class:`~music21.graph.PlotScatterPitchSpaceDynamicSymbol`
    * :class:`~music21.graph.PlotHorizontalBarPitchSpaceOffset`
    * :class:`~music21.graph.PlotHorizontalBarPitchClassOffset`
    * :class:`~music21.graph.PlotScatterWeightedPitchSpaceQuarterLength`
    * :class:`~music21.graph.PlotScatterWeightedPitchClassQuarterLength`
    * :class:`~music21.graph.PlotScatterWeightedPitchSpaceDynamicSymbol`
    * :class:`~music21.graph.Plot3DBarsPitchSpaceQuarterLength`
    * :class:`~music21.graph.PlotWindowedKrumhanslSchmuckler`
    * :class:`~music21.graph.PlotWindowedKrumhanslKessler`
    * :class:`~music21.graph.PlotWindowedAardenEssen`
    * :class:`~music21.graph.PlotWindowedSimpleWeights`
    * :class:`~music21.graph.PlotWindowedBellmanBudge`
    * :class:`~music21.graph.PlotWindowedTemperleyKostkaPayne`
    * :class:`~music21.graph.PlotWindowedAmbitus`
    * :class:`~music21.graph.PlotDolan`




    >>> from music21 import *
    >>> s = corpus.parse('bach/bwv57.8')
    >>> s.plot('histogram', 'pitch')




    .. image:: images/PlotHistogramPitchSpace.*
            :width: 600





    >>> s = corpus.parse('bach/bwv57.8')
    >>> s.plot('pianoroll')




    .. image:: images/PlotHorizontalBarPitchSpaceOffset.*
            :width: 600





.. function:: userFormatsToFormat(value)

    Replace possible user format strings with defined format names as used herein. Returns string unaltered if no match.



.. function:: userValuesToValues(valueList)

    Given a value list, replace string with synonymes. Let unmatched values pass.



PlotHistogramPitchSpace
-----------------------

Inherits from: :class:`~music21.graph.PlotHistogram`, :class:`~music21.graph.PlotStream`

.. class:: PlotHistogramPitchSpace(streamObj, *args, **keywords)

    A histogram of pitch space.



    >>> from music21 import *
    >>> s = corpus.parse('bach/bwv57.8')
    >>> p = graph.PlotHistogramPitchSpace(s)
    >>> p.id
    'histogram-pitch'
    >>> p.process() # with defaults and proper configuration, will open graph




    .. image:: images/PlotHistogramPitchSpace.*
            :width: 600




    **PlotHistogramPitchSpace** **attributes**

        Attributes without Documentation: `values`

        Attributes inherited from :class:`~music21.graph.PlotHistogram`: :attr:`~music21.graph.PlotHistogram.format`

    **PlotHistogramPitchSpace** **properties**

        Properties inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.id`

    **PlotHistogramPitchSpace** **methods**

        Methods inherited from :class:`~music21.graph.PlotStream`: :meth:`~music21.graph.PlotStream.process`, :meth:`~music21.graph.PlotStream.remapQuarterLength`, :meth:`~music21.graph.PlotStream.show`, :meth:`~music21.graph.PlotStream.ticksDynamics`, :meth:`~music21.graph.PlotStream.ticksOffset`, :meth:`~music21.graph.PlotStream.ticksPitchClass`, :meth:`~music21.graph.PlotStream.ticksPitchClassUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceChromatic`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceOctave`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertone`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertoneUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceUsage`, :meth:`~music21.graph.PlotStream.ticksQuarterLength`, :meth:`~music21.graph.PlotStream.write`


PlotHistogramPitchClass
-----------------------

Inherits from: :class:`~music21.graph.PlotHistogram`, :class:`~music21.graph.PlotStream`

.. class:: PlotHistogramPitchClass(streamObj, *args, **keywords)

    A histogram of pitch class



    >>> from music21 import *
    >>> s = corpus.parse('bach/bwv57.8')
    >>> p = graph.PlotHistogramPitchClass(s)
    >>> p.id
    'histogram-pitchClass'
    >>> p.process() # with defaults and proper configuration, will open graph




    .. image:: images/PlotHistogramPitchClass.*
            :width: 600





    **PlotHistogramPitchClass** **attributes**

        Attributes without Documentation: `values`

        Attributes inherited from :class:`~music21.graph.PlotHistogram`: :attr:`~music21.graph.PlotHistogram.format`

    **PlotHistogramPitchClass** **properties**

        Properties inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.id`

    **PlotHistogramPitchClass** **methods**

        Methods inherited from :class:`~music21.graph.PlotStream`: :meth:`~music21.graph.PlotStream.process`, :meth:`~music21.graph.PlotStream.remapQuarterLength`, :meth:`~music21.graph.PlotStream.show`, :meth:`~music21.graph.PlotStream.ticksDynamics`, :meth:`~music21.graph.PlotStream.ticksOffset`, :meth:`~music21.graph.PlotStream.ticksPitchClass`, :meth:`~music21.graph.PlotStream.ticksPitchClassUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceChromatic`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceOctave`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertone`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertoneUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceUsage`, :meth:`~music21.graph.PlotStream.ticksQuarterLength`, :meth:`~music21.graph.PlotStream.write`


PlotHistogramQuarterLength
--------------------------

Inherits from: :class:`~music21.graph.PlotHistogram`, :class:`~music21.graph.PlotStream`

.. class:: PlotHistogramQuarterLength(streamObj, *args, **keywords)

    A histogram of pitch class



    >>> from music21 import *
    >>> s = corpus.parse('bach/bwv57.8')
    >>> p = graph.PlotHistogramQuarterLength(s)
    >>> p.id
    'histogram-quarterLength'
    >>> p.process() # with defaults and proper configuration, will open graph




    .. image:: images/PlotHistogramQuarterLength.*
            :width: 600





    **PlotHistogramQuarterLength** **attributes**

        Attributes without Documentation: `values`

        Attributes inherited from :class:`~music21.graph.PlotHistogram`: :attr:`~music21.graph.PlotHistogram.format`

    **PlotHistogramQuarterLength** **properties**

        Properties inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.id`

    **PlotHistogramQuarterLength** **methods**

        Methods inherited from :class:`~music21.graph.PlotStream`: :meth:`~music21.graph.PlotStream.process`, :meth:`~music21.graph.PlotStream.remapQuarterLength`, :meth:`~music21.graph.PlotStream.show`, :meth:`~music21.graph.PlotStream.ticksDynamics`, :meth:`~music21.graph.PlotStream.ticksOffset`, :meth:`~music21.graph.PlotStream.ticksPitchClass`, :meth:`~music21.graph.PlotStream.ticksPitchClassUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceChromatic`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceOctave`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertone`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertoneUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceUsage`, :meth:`~music21.graph.PlotStream.ticksQuarterLength`, :meth:`~music21.graph.PlotStream.write`


PlotWindowedKrumhanslSchmuckler
-------------------------------

Inherits from: :class:`~music21.graph.PlotWindowedAnalysis`, :class:`~music21.graph.PlotStream`

.. class:: PlotWindowedKrumhanslSchmuckler(streamObj, *args, **keywords)

    Stream plotting of windowed version of Krumhansl-Schmuckler analysis routine. See :class:`~music21.analysis.discrete.KrumhanslSchmuckler` for more details.



    >>> from music21 import *
    >>> s = corpus.parse('bach/bwv66.6')
    >>> p = graph.PlotWindowedKrumhanslSchmuckler(s.parts[0])
    >>> p.process() # with defaults and proper configuration, will open graph




    .. image:: images/PlotWindowedKrumhanslSchmuckler.*
            :width: 600





    .. image:: images/legend-PlotWindowedKrumhanslSchmuckler.*




    **PlotWindowedKrumhanslSchmuckler** **attributes**

        Attributes without Documentation: `values`

        Attributes inherited from :class:`~music21.graph.PlotWindowedAnalysis`: :attr:`~music21.graph.PlotWindowedAnalysis.format`

    **PlotWindowedKrumhanslSchmuckler** **properties**

        Properties inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.id`

    **PlotWindowedKrumhanslSchmuckler** **methods**

        Methods inherited from :class:`~music21.graph.PlotWindowedAnalysis`: :meth:`~music21.graph.PlotWindowedAnalysis.process`, :meth:`~music21.graph.PlotWindowedAnalysis.write`

        Methods inherited from :class:`~music21.graph.PlotStream`: :meth:`~music21.graph.PlotStream.remapQuarterLength`, :meth:`~music21.graph.PlotStream.show`, :meth:`~music21.graph.PlotStream.ticksDynamics`, :meth:`~music21.graph.PlotStream.ticksOffset`, :meth:`~music21.graph.PlotStream.ticksPitchClass`, :meth:`~music21.graph.PlotStream.ticksPitchClassUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceChromatic`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceOctave`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertone`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertoneUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceUsage`, :meth:`~music21.graph.PlotStream.ticksQuarterLength`


PlotWindowedAmbitus
-------------------

Inherits from: :class:`~music21.graph.PlotWindowedAnalysis`, :class:`~music21.graph.PlotStream`

.. class:: PlotWindowedAmbitus(streamObj, *args, **keywords)

    Stream plotting of basic pitch span.



    >>> from music21 import *
    >>> s = corpus.parse('bach/bwv66.6')
    >>> p = graph.PlotWindowedAmbitus(s.parts[0])
    >>> p.process() # with defaults and proper configuration, will open graph




    .. image:: images/PlotWindowedAmbitus.*
            :width: 600





    .. image:: images/legend-PlotWindowedAmbitus.*




    **PlotWindowedAmbitus** **attributes**

        Attributes without Documentation: `values`

        Attributes inherited from :class:`~music21.graph.PlotWindowedAnalysis`: :attr:`~music21.graph.PlotWindowedAnalysis.format`

    **PlotWindowedAmbitus** **properties**

        Properties inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.id`

    **PlotWindowedAmbitus** **methods**

        Methods inherited from :class:`~music21.graph.PlotWindowedAnalysis`: :meth:`~music21.graph.PlotWindowedAnalysis.process`, :meth:`~music21.graph.PlotWindowedAnalysis.write`

        Methods inherited from :class:`~music21.graph.PlotStream`: :meth:`~music21.graph.PlotStream.remapQuarterLength`, :meth:`~music21.graph.PlotStream.show`, :meth:`~music21.graph.PlotStream.ticksDynamics`, :meth:`~music21.graph.PlotStream.ticksOffset`, :meth:`~music21.graph.PlotStream.ticksPitchClass`, :meth:`~music21.graph.PlotStream.ticksPitchClassUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceChromatic`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceOctave`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertone`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertoneUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceUsage`, :meth:`~music21.graph.PlotStream.ticksQuarterLength`


PlotScatterPitchSpaceQuarterLength
----------------------------------

Inherits from: :class:`~music21.graph.PlotScatter`, :class:`~music21.graph.PlotStream`

.. class:: PlotScatterPitchSpaceQuarterLength(streamObj, *args, **keywords)

    A scatter plot of pitch space and quarter length



    >>> from music21 import *
    >>> s = corpus.parse('bach/bwv57.8')
    >>> p = graph.PlotScatterPitchSpaceQuarterLength(s)
    >>> p.id
    'scatter-pitch-quarterLength'
    >>> p.process()




    .. image:: images/PlotScatterPitchSpaceQuarterLength.*
            :width: 600




    **PlotScatterPitchSpaceQuarterLength** **attributes**

        Attributes without Documentation: `values`

        Attributes inherited from :class:`~music21.graph.PlotScatter`: :attr:`~music21.graph.PlotScatter.format`

    **PlotScatterPitchSpaceQuarterLength** **properties**

        Properties inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.id`

    **PlotScatterPitchSpaceQuarterLength** **methods**

        Methods inherited from :class:`~music21.graph.PlotStream`: :meth:`~music21.graph.PlotStream.process`, :meth:`~music21.graph.PlotStream.remapQuarterLength`, :meth:`~music21.graph.PlotStream.show`, :meth:`~music21.graph.PlotStream.ticksDynamics`, :meth:`~music21.graph.PlotStream.ticksOffset`, :meth:`~music21.graph.PlotStream.ticksPitchClass`, :meth:`~music21.graph.PlotStream.ticksPitchClassUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceChromatic`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceOctave`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertone`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertoneUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceUsage`, :meth:`~music21.graph.PlotStream.ticksQuarterLength`, :meth:`~music21.graph.PlotStream.write`


PlotScatterPitchClassQuarterLength
----------------------------------

Inherits from: :class:`~music21.graph.PlotScatter`, :class:`~music21.graph.PlotStream`

.. class:: PlotScatterPitchClassQuarterLength(streamObj, *args, **keywords)

    A scatter plot of pitch class and quarter length



    >>> from music21 import *
    >>> s = corpus.parse('bach/bwv57.8')
    >>> p = graph.PlotScatterPitchClassQuarterLength(s)
    >>> p.id
    'scatter-pitchClass-quarterLength'
    >>> p.process()




    .. image:: images/PlotScatterPitchClassQuarterLength.*
            :width: 600




    **PlotScatterPitchClassQuarterLength** **attributes**

        Attributes without Documentation: `values`

        Attributes inherited from :class:`~music21.graph.PlotScatter`: :attr:`~music21.graph.PlotScatter.format`

    **PlotScatterPitchClassQuarterLength** **properties**

        Properties inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.id`

    **PlotScatterPitchClassQuarterLength** **methods**

        Methods inherited from :class:`~music21.graph.PlotStream`: :meth:`~music21.graph.PlotStream.process`, :meth:`~music21.graph.PlotStream.remapQuarterLength`, :meth:`~music21.graph.PlotStream.show`, :meth:`~music21.graph.PlotStream.ticksDynamics`, :meth:`~music21.graph.PlotStream.ticksOffset`, :meth:`~music21.graph.PlotStream.ticksPitchClass`, :meth:`~music21.graph.PlotStream.ticksPitchClassUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceChromatic`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceOctave`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertone`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertoneUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceUsage`, :meth:`~music21.graph.PlotStream.ticksQuarterLength`, :meth:`~music21.graph.PlotStream.write`


PlotScatterPitchClassOffset
---------------------------

Inherits from: :class:`~music21.graph.PlotScatter`, :class:`~music21.graph.PlotStream`

.. class:: PlotScatterPitchClassOffset(streamObj, *args, **keywords)

    A scatter plot of pitch class and offset



    >>> from music21 import *
    >>> s = corpus.parse('bach/bwv57.8')
    >>> p = graph.PlotScatterPitchClassOffset(s)
    >>> p.id
    'scatter-pitchClass-offset'
    >>> p.process()




    .. image:: images/PlotScatterPitchClassOffset.*
            :width: 600




    **PlotScatterPitchClassOffset** **attributes**

        Attributes without Documentation: `values`

        Attributes inherited from :class:`~music21.graph.PlotScatter`: :attr:`~music21.graph.PlotScatter.format`

    **PlotScatterPitchClassOffset** **properties**

        Properties inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.id`

    **PlotScatterPitchClassOffset** **methods**

        Methods inherited from :class:`~music21.graph.PlotStream`: :meth:`~music21.graph.PlotStream.process`, :meth:`~music21.graph.PlotStream.remapQuarterLength`, :meth:`~music21.graph.PlotStream.show`, :meth:`~music21.graph.PlotStream.ticksDynamics`, :meth:`~music21.graph.PlotStream.ticksOffset`, :meth:`~music21.graph.PlotStream.ticksPitchClass`, :meth:`~music21.graph.PlotStream.ticksPitchClassUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceChromatic`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceOctave`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertone`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertoneUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceUsage`, :meth:`~music21.graph.PlotStream.ticksQuarterLength`, :meth:`~music21.graph.PlotStream.write`


PlotScatterPitchSpaceDynamicSymbol
----------------------------------

Inherits from: :class:`~music21.graph.PlotScatter`, :class:`~music21.graph.PlotStream`

.. class:: PlotScatterPitchSpaceDynamicSymbol(streamObj, *args, **keywords)

    A graph of dynamics used by pitch space.



    >>> from music21 import *
    >>> s = corpus.parse('schumann/opus41no1', 2)
    >>> p = graph.PlotScatterPitchSpaceDynamicSymbol(s)
    >>> p.process()




    .. image:: images/PlotScatterPitchSpaceDynamicSymbol.*
            :width: 600




    **PlotScatterPitchSpaceDynamicSymbol** **attributes**

        Attributes without Documentation: `values`

        Attributes inherited from :class:`~music21.graph.PlotScatter`: :attr:`~music21.graph.PlotScatter.format`

    **PlotScatterPitchSpaceDynamicSymbol** **properties**

        Properties inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.id`

    **PlotScatterPitchSpaceDynamicSymbol** **methods**

        Methods inherited from :class:`~music21.graph.PlotStream`: :meth:`~music21.graph.PlotStream.process`, :meth:`~music21.graph.PlotStream.remapQuarterLength`, :meth:`~music21.graph.PlotStream.show`, :meth:`~music21.graph.PlotStream.ticksDynamics`, :meth:`~music21.graph.PlotStream.ticksOffset`, :meth:`~music21.graph.PlotStream.ticksPitchClass`, :meth:`~music21.graph.PlotStream.ticksPitchClassUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceChromatic`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceOctave`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertone`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertoneUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceUsage`, :meth:`~music21.graph.PlotStream.ticksQuarterLength`, :meth:`~music21.graph.PlotStream.write`


PlotHorizontalBarPitchSpaceOffset
---------------------------------

Inherits from: :class:`~music21.graph.PlotHorizontalBar`, :class:`~music21.graph.PlotStream`

.. class:: PlotHorizontalBarPitchSpaceOffset(streamObj, *args, **keywords)

    A graph of events, sorted by pitch space, over time



    >>> from music21 import *
    >>> s = corpus.parse('bach/bwv57.8')
    >>> p = graph.PlotHorizontalBarPitchSpaceOffset(s)
    >>> p.process() # with defaults and proper configuration, will open graph




    .. image:: images/PlotHorizontalBarPitchSpaceOffset.*
            :width: 600




    **PlotHorizontalBarPitchSpaceOffset** **attributes**

        Attributes without Documentation: `values`

        Attributes inherited from :class:`~music21.graph.PlotHorizontalBar`: :attr:`~music21.graph.PlotHorizontalBar.format`

    **PlotHorizontalBarPitchSpaceOffset** **properties**

        Properties inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.id`

    **PlotHorizontalBarPitchSpaceOffset** **methods**

        Methods inherited from :class:`~music21.graph.PlotStream`: :meth:`~music21.graph.PlotStream.process`, :meth:`~music21.graph.PlotStream.remapQuarterLength`, :meth:`~music21.graph.PlotStream.show`, :meth:`~music21.graph.PlotStream.ticksDynamics`, :meth:`~music21.graph.PlotStream.ticksOffset`, :meth:`~music21.graph.PlotStream.ticksPitchClass`, :meth:`~music21.graph.PlotStream.ticksPitchClassUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceChromatic`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceOctave`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertone`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertoneUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceUsage`, :meth:`~music21.graph.PlotStream.ticksQuarterLength`, :meth:`~music21.graph.PlotStream.write`


PlotHorizontalBarPitchClassOffset
---------------------------------

Inherits from: :class:`~music21.graph.PlotHorizontalBar`, :class:`~music21.graph.PlotStream`

.. class:: PlotHorizontalBarPitchClassOffset(streamObj, *args, **keywords)

    A graph of events, sorted by pitch class, over time



    >>> from music21 import *
    >>> s = corpus.parse('bach/bwv57.8')
    >>> p = graph.PlotHorizontalBarPitchClassOffset(s)
    >>> p.process() # with defaults and proper configuration, will open graph




    .. image:: images/PlotHorizontalBarPitchClassOffset.*
            :width: 600





    **PlotHorizontalBarPitchClassOffset** **attributes**

        Attributes without Documentation: `values`

        Attributes inherited from :class:`~music21.graph.PlotHorizontalBar`: :attr:`~music21.graph.PlotHorizontalBar.format`

    **PlotHorizontalBarPitchClassOffset** **properties**

        Properties inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.id`

    **PlotHorizontalBarPitchClassOffset** **methods**

        Methods inherited from :class:`~music21.graph.PlotStream`: :meth:`~music21.graph.PlotStream.process`, :meth:`~music21.graph.PlotStream.remapQuarterLength`, :meth:`~music21.graph.PlotStream.show`, :meth:`~music21.graph.PlotStream.ticksDynamics`, :meth:`~music21.graph.PlotStream.ticksOffset`, :meth:`~music21.graph.PlotStream.ticksPitchClass`, :meth:`~music21.graph.PlotStream.ticksPitchClassUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceChromatic`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceOctave`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertone`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertoneUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceUsage`, :meth:`~music21.graph.PlotStream.ticksQuarterLength`, :meth:`~music21.graph.PlotStream.write`


PlotDolan
---------

Inherits from: :class:`~music21.graph.PlotHorizontalBarWeighted`, :class:`~music21.graph.PlotStream`

.. class:: PlotDolan(streamObj, *args, **keywords)

    A graph of the activity of a parameter of a part (or a group of parts) over time. The default parameter graphed is Dynamics. Dynamics are assumed to extend activity to the next change in dynamics.

    Numerous parameters can be configured based on functionality encoded in the :class:`~music21.analysis.reduction.PartReduction` object.


    If the `fillByMeasure` parameter is True, and if measures are available, each part will segment by Measure divisions, and look for the target activity only once per Measure. If more than one target is found in the Measure, values will be averaged. If `fillByMeasure` is False, the part will be segmented by each Note.

    The `segmentByTarget` parameter is True, segments, which may be Notes or Measures, will be divided if necessary to show changes that occur over the duration of the segment by a target object.

    If the `normalizeByPart` parameter is True, each part will be normalized within the range only of that part. If False, all parts will be normalized by the max of all parts. The default is True.




    >>> from music21 import *
    >>> s = corpus.parse('bwv66.6')
    >>> dyn = ['p', 'mf', 'f', 'ff', 'mp', 'fff', 'ppp']
    >>> i = 0
    ... for p in s.parts:
    ...     for m in p.getElementsByClass('Measure'):
    ...         m.insert(0, dynamics.Dynamic(dyn[i % len(dyn)]))
    ...         i += 1
    ...
    >>> s.plot('dolan', fillByMeasure=True, segmentByTarget=True)




    .. image:: images/PlotDolan.*
            :width: 600





    **PlotDolan** **attributes**

        Attributes without Documentation: `values`

        Attributes inherited from :class:`~music21.graph.PlotHorizontalBarWeighted`: :attr:`~music21.graph.PlotHorizontalBarWeighted.format`

    **PlotDolan** **properties**

        Properties inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.id`

    **PlotDolan** **methods**

        Methods inherited from :class:`~music21.graph.PlotStream`: :meth:`~music21.graph.PlotStream.process`, :meth:`~music21.graph.PlotStream.remapQuarterLength`, :meth:`~music21.graph.PlotStream.show`, :meth:`~music21.graph.PlotStream.ticksDynamics`, :meth:`~music21.graph.PlotStream.ticksOffset`, :meth:`~music21.graph.PlotStream.ticksPitchClass`, :meth:`~music21.graph.PlotStream.ticksPitchClassUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceChromatic`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceOctave`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertone`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertoneUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceUsage`, :meth:`~music21.graph.PlotStream.ticksQuarterLength`, :meth:`~music21.graph.PlotStream.write`


PlotScatterWeightedPitchSpaceQuarterLength
------------------------------------------

Inherits from: :class:`~music21.graph.PlotScatterWeighted`, :class:`~music21.graph.PlotStream`

.. class:: PlotScatterWeightedPitchSpaceQuarterLength(streamObj, *args, **keywords)

    A graph of event, sorted by pitch, over time



    >>> from music21 import *
    >>> s = corpus.parse('bach/bwv57.8')
    >>> p = graph.PlotScatterWeightedPitchSpaceQuarterLength(s)
    >>> p.process() # with defaults and proper configuration, will open graph




    .. image:: images/PlotScatterWeightedPitchSpaceQuarterLength.*
            :width: 600




    **PlotScatterWeightedPitchSpaceQuarterLength** **attributes**

        Attributes without Documentation: `values`

        Attributes inherited from :class:`~music21.graph.PlotScatterWeighted`: :attr:`~music21.graph.PlotScatterWeighted.format`

    **PlotScatterWeightedPitchSpaceQuarterLength** **properties**

        Properties inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.id`

    **PlotScatterWeightedPitchSpaceQuarterLength** **methods**

        Methods inherited from :class:`~music21.graph.PlotStream`: :meth:`~music21.graph.PlotStream.process`, :meth:`~music21.graph.PlotStream.remapQuarterLength`, :meth:`~music21.graph.PlotStream.show`, :meth:`~music21.graph.PlotStream.ticksDynamics`, :meth:`~music21.graph.PlotStream.ticksOffset`, :meth:`~music21.graph.PlotStream.ticksPitchClass`, :meth:`~music21.graph.PlotStream.ticksPitchClassUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceChromatic`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceOctave`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertone`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertoneUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceUsage`, :meth:`~music21.graph.PlotStream.ticksQuarterLength`, :meth:`~music21.graph.PlotStream.write`


PlotScatterWeightedPitchClassQuarterLength
------------------------------------------

Inherits from: :class:`~music21.graph.PlotScatterWeighted`, :class:`~music21.graph.PlotStream`

.. class:: PlotScatterWeightedPitchClassQuarterLength(streamObj, *args, **keywords)

    A graph of event, sorted by pitch class, over time.



    >>> from music21 import *
    >>> s = corpus.parse('bach/bwv57.8')
    >>> p = graph.PlotScatterWeightedPitchClassQuarterLength(s)
    >>> p.process() # with defaults and proper configuration, will open graph




    .. image:: images/PlotScatterWeightedPitchClassQuarterLength.*
            :width: 600





    **PlotScatterWeightedPitchClassQuarterLength** **attributes**

        Attributes without Documentation: `values`

        Attributes inherited from :class:`~music21.graph.PlotScatterWeighted`: :attr:`~music21.graph.PlotScatterWeighted.format`

    **PlotScatterWeightedPitchClassQuarterLength** **properties**

        Properties inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.id`

    **PlotScatterWeightedPitchClassQuarterLength** **methods**

        Methods inherited from :class:`~music21.graph.PlotStream`: :meth:`~music21.graph.PlotStream.process`, :meth:`~music21.graph.PlotStream.remapQuarterLength`, :meth:`~music21.graph.PlotStream.show`, :meth:`~music21.graph.PlotStream.ticksDynamics`, :meth:`~music21.graph.PlotStream.ticksOffset`, :meth:`~music21.graph.PlotStream.ticksPitchClass`, :meth:`~music21.graph.PlotStream.ticksPitchClassUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceChromatic`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceOctave`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertone`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertoneUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceUsage`, :meth:`~music21.graph.PlotStream.ticksQuarterLength`, :meth:`~music21.graph.PlotStream.write`


PlotScatterWeightedPitchSpaceDynamicSymbol
------------------------------------------

Inherits from: :class:`~music21.graph.PlotScatterWeighted`, :class:`~music21.graph.PlotStream`

.. class:: PlotScatterWeightedPitchSpaceDynamicSymbol(streamObj, *args, **keywords)

    A graph of dynamics used by pitch space.




    >>> from music21 import *
    >>> s = corpus.parse('schumann/opus41no1', 2)
    >>> p = graph.PlotScatterWeightedPitchSpaceDynamicSymbol(s)
    >>> p.process() # with defaults and proper configuration, will open graph




    .. image:: images/PlotScatterWeightedPitchSpaceDynamicSymbol.*
            :width: 600





    **PlotScatterWeightedPitchSpaceDynamicSymbol** **attributes**

        Attributes without Documentation: `values`

        Attributes inherited from :class:`~music21.graph.PlotScatterWeighted`: :attr:`~music21.graph.PlotScatterWeighted.format`

    **PlotScatterWeightedPitchSpaceDynamicSymbol** **properties**

        Properties inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.id`

    **PlotScatterWeightedPitchSpaceDynamicSymbol** **methods**

        Methods inherited from :class:`~music21.graph.PlotStream`: :meth:`~music21.graph.PlotStream.process`, :meth:`~music21.graph.PlotStream.remapQuarterLength`, :meth:`~music21.graph.PlotStream.show`, :meth:`~music21.graph.PlotStream.ticksDynamics`, :meth:`~music21.graph.PlotStream.ticksOffset`, :meth:`~music21.graph.PlotStream.ticksPitchClass`, :meth:`~music21.graph.PlotStream.ticksPitchClassUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceChromatic`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceOctave`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertone`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertoneUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceUsage`, :meth:`~music21.graph.PlotStream.ticksQuarterLength`, :meth:`~music21.graph.PlotStream.write`


Plot3DBarsPitchSpaceQuarterLength
---------------------------------

Inherits from: :class:`~music21.graph.Plot3DBars`, :class:`~music21.graph.PlotStream`

.. class:: Plot3DBarsPitchSpaceQuarterLength(streamObj, *args, **keywords)

    A scatter plot of pitch and quarter length



    >>> from music21 import *
    >>> from music21.musicxml import testFiles
    >>> s = converter.parse(testFiles.mozartTrioK581Excerpt)
    >>> p = graph.Plot3DBarsPitchSpaceQuarterLength(s)
    >>> p.id
    '3dBars-pitch-quarterLength'
    >>> p.process() # with defaults and proper configuration, will open graph




    .. image:: images/Plot3DBarsPitchSpaceQuarterLength.*
            :width: 600




    **Plot3DBarsPitchSpaceQuarterLength** **attributes**

        Attributes without Documentation: `values`

        Attributes inherited from :class:`~music21.graph.Plot3DBars`: :attr:`~music21.graph.Plot3DBars.format`

    **Plot3DBarsPitchSpaceQuarterLength** **properties**

        Properties inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.id`

    **Plot3DBarsPitchSpaceQuarterLength** **methods**

        Methods inherited from :class:`~music21.graph.PlotStream`: :meth:`~music21.graph.PlotStream.process`, :meth:`~music21.graph.PlotStream.remapQuarterLength`, :meth:`~music21.graph.PlotStream.show`, :meth:`~music21.graph.PlotStream.ticksDynamics`, :meth:`~music21.graph.PlotStream.ticksOffset`, :meth:`~music21.graph.PlotStream.ticksPitchClass`, :meth:`~music21.graph.PlotStream.ticksPitchClassUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceChromatic`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceOctave`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertone`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertoneUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceUsage`, :meth:`~music21.graph.PlotStream.ticksQuarterLength`, :meth:`~music21.graph.PlotStream.write`


Graph
-----



.. class:: Graph(*args, **keywords)


    A music21.graph.Graph is an object that represents a visual graph or
    plot, automating the creation and configuration of this graph in matplotlib.
    It is a low-level object that most music21 users do not need to call directly; yet, as most graphs will take keyword arguments that specify the
    look of graphs, they are important to know about.

    The keyword arguments can be provided for configuration are:
    alpha (which describes how transparent elements of the graph are),
    colorBackgroundData, colorBackgroundFigure, colorGrid, title,
    doneAction (see below),
    figureSize, colors, tickFontSize, titleFontSize, labelFontSize,
    fontFamily, marker, markerSize.

    Graph objects do not manipulate Streams or other music21 data; they only
    manipulate raw data formatted for each Graph subclass, hence it is
    unlikely that users will call this class directly.

    The `doneAction` argument determines what happens after the graph
    has been processed. Currently there are three options, 'write' creates
    a file on disk (this is the default), while 'show' opens an
    interactive GUI browser.  The
    third option, None, does the processing but does not write any output.






    >>> from music21 import *
    >>> a = graph.Graph(title='a graph of some data to be given soon', tickFontSize = 9)
    >>> a.setData(['some', 'arbitrary', 'data', 14, 9.04, None])



    **Graph** **attributes**

        Attributes without Documentation: `doneAction`, `hideYGrid`, `fontFamily`, `colors`, `axisKeys`, `marker`, `axis`, `title`, `markerSize`, `xTickLabelVerticalAlignment`, `colorGrid`, `titleFontSize`, `colorBackgroundFigure`, `tickFontSize`, `grid`, `alpha`, `labelFontSize`, `data`, `xTickLabelHorizontalAlignment`, `hideXGrid`, `figureSize`, `colorBackgroundData`, `xTickLabelRotation`, `dpi`

    **Graph** **methods**

        .. method:: done(fp=None)

            Implement the desired doneAction, after data processing



        .. method:: process()

            process data and prepare plot


        .. method:: setAxisLabel(axisKey, label)

            No documentation.


        .. method:: setAxisRange(axisKey, valueRange, paddingFraction=0.1)


            Set the range for the axis for a given axis key
            (generally, 'x', or 'y')

            ValueRange is a two-element tuple of the lowest
            number and the highest.

            By default there is a padding of 10% of the range
            in either direction.  Set paddingFraction = 0 to
            eliminate this shift



        .. method:: setData(data)

            No documentation.


        .. method:: setDoneAction(action)


            sets what should happen when the graph is created (see docs above)
            default is 'write'.



        .. method:: setFigureSize(figSize)


            Set the figure size as an x,y pair.

            Scales all graph components but because of matplotlib limitations
            (esp. on 3d graphs) no all labels scale properly.



        .. method:: setIntegerTicksFromData(unsortedData, axisKey='y', dataSteps=8)


            Set the ticks for an axis (usually 'y') given the data



        .. method:: setTicks(axisKey, pairs)


            Set the tick-labels for a given graph or plot's axisKey
            (generally 'x', and 'y') with a set of pairs

            Pairs are tuples of positions and labels.

            N.B. -- both 'x' and 'y' ticks have to be set in
            order to get matplotlib to display either...



        .. method:: setTitle(title)

            No documentation.


        .. method:: show()


            Calls the show() method of the matplotlib plot.
            For most matplotlib back ends, this will open
            a GUI window with the desired graph.



        .. method:: write(fp=None)


            Writes the graph to a file. If no file path is given, a temporary file is used.




Graph3DPolygonBars
------------------

Inherits from: :class:`~music21.graph.Graph`

.. class:: Graph3DPolygonBars(*args, **keywords)

    Graph multiple parallel bar graphs in 3D.

    This draws bars with polygons, a temporary alternative to using Graph3DBars, above.

    Note: Due to matplotib issue Axis ticks do not seem to be adjustable without distorting the graph.



    >>> from music21 import *
    >>> g = graph.Graph3DPolygonBars()
    >>> data = {1:[], 2:[], 3:[]}
    >>> for i in range(len(data.keys())):
    ...    q = [(x, random.choice(range(10*(i+1)))) for x in range(20)]
    ...    data[data.keys()[i]] = q
    >>> g.setData(data)
    >>> g.process()




    .. image:: images/Graph3DPolygonBars.*
            :width: 600





    **Graph3DPolygonBars** **attributes**

        Attributes without Documentation: `barWidth`

        Attributes inherited from :class:`~music21.graph.Graph`: :attr:`~music21.graph.Graph.doneAction`, :attr:`~music21.graph.Graph.hideYGrid`, :attr:`~music21.graph.Graph.fontFamily`, :attr:`~music21.graph.Graph.colors`, :attr:`~music21.graph.Graph.axisKeys`, :attr:`~music21.graph.Graph.marker`, :attr:`~music21.graph.Graph.axis`, :attr:`~music21.graph.Graph.title`, :attr:`~music21.graph.Graph.markerSize`, :attr:`~music21.graph.Graph.xTickLabelVerticalAlignment`, :attr:`~music21.graph.Graph.colorGrid`, :attr:`~music21.graph.Graph.titleFontSize`, :attr:`~music21.graph.Graph.colorBackgroundFigure`, :attr:`~music21.graph.Graph.tickFontSize`, :attr:`~music21.graph.Graph.grid`, :attr:`~music21.graph.Graph.alpha`, :attr:`~music21.graph.Graph.labelFontSize`, :attr:`~music21.graph.Graph.data`, :attr:`~music21.graph.Graph.xTickLabelHorizontalAlignment`, :attr:`~music21.graph.Graph.hideXGrid`, :attr:`~music21.graph.Graph.figureSize`, :attr:`~music21.graph.Graph.colorBackgroundData`, :attr:`~music21.graph.Graph.xTickLabelRotation`, :attr:`~music21.graph.Graph.dpi`

    **Graph3DPolygonBars** **methods**

        .. method:: process()

            No documentation.


        Methods inherited from :class:`~music21.graph.Graph`: :meth:`~music21.graph.Graph.done`, :meth:`~music21.graph.Graph.setAxisLabel`, :meth:`~music21.graph.Graph.setAxisRange`, :meth:`~music21.graph.Graph.setData`, :meth:`~music21.graph.Graph.setDoneAction`, :meth:`~music21.graph.Graph.setFigureSize`, :meth:`~music21.graph.Graph.setIntegerTicksFromData`, :meth:`~music21.graph.Graph.setTicks`, :meth:`~music21.graph.Graph.setTitle`, :meth:`~music21.graph.Graph.show`, :meth:`~music21.graph.Graph.write`


GraphColorGrid
--------------

Inherits from: :class:`~music21.graph.Graph`

.. class:: GraphColorGrid(*args, **keywords)

    Grid of discrete colored "blocks" to visualize results of a windowed analysis routine.

       Data is provided as a list of lists of colors, where colors are specified as a hex triplet, or the common HTML color codes, and based on analysis-specific mapping of colors to results.


       >>> from music21 import *
       >>> g = graph.GraphColorGrid()
       >>> data = [['#55FF00', '#9b0000', '#009b00'], ['#FFD600', '#FF5600'], ['#201a2b', '#8f73bf', '#a080d5', '#403355', '#999999']]
       >>> g.setData(data)
       >>> g.process()




       .. image:: images/GraphColorGrid.*
               :width: 600





GraphColorGridLegend
--------------------

Inherits from: :class:`~music21.graph.Graph`

.. class:: GraphColorGridLegend(*args, **keywords)

    Grid of discrete colored "blocks" where each block can be labeled

       Data is provided as a list of lists of colors, where colors are specified as a hex triplet, or the common HTML color codes, and based on analysis-specific mapping of colors to results.

       >>> from music21 import *
       >>> g = graph.GraphColorGridLegend()
       >>> data = []
       >>> data.append(('Major', [('C#', '#00AA55'), ('D-', '#5600FF'), ('G#', '#2B00FF')]))
       >>> data.append(('Minor', [('C#', '#004600'), ('D-', '#00009b'), ('G#', '#00009B')]))
       >>> g.setData(data)
       >>> g.process()




       .. image:: images/GraphColorGridLegend.*
               :width: 600






GraphGroupedVerticalBar
-----------------------

Inherits from: :class:`~music21.graph.Graph`

.. class:: GraphGroupedVerticalBar(*args, **keywords)

    Graph the count of on or more elements in vertical bars

    Data set is simply a list of x and y pairs, where there
    is only one of each x value, and y value is a list of values



    >>> from music21 import *
    >>> import random
    >>> g = graph.GraphGroupedVerticalBar()
    >>> data = [('bar%s' % x, {'a':3,'b':2,'c':1}) for x in range(10)]
    >>> data
    [('bar0', {'a': 3, 'c': 1, 'b': 2}), ('bar1', {'a': 3, 'c': 1, 'b': 2}), ('bar2', {'a': 3, 'c': 1, 'b': 2}), ('bar3', {'a': 3, 'c': 1, 'b': 2}), ('bar4', {'a': 3, 'c': 1, 'b': 2}), ('bar5', {'a': 3, 'c': 1, 'b': 2}), ('bar6', {'a': 3, 'c': 1, 'b': 2}), ('bar7', {'a': 3, 'c': 1, 'b': 2}), ('bar8', {'a': 3, 'c': 1, 'b': 2}), ('bar9', {'a': 3, 'c': 1, 'b': 2})]
    >>> g.setData(data)
    >>> g.process()




    **GraphGroupedVerticalBar** **attributes**

        Attributes without Documentation: `groupLabelHeight`, `binWidth`, `roundDigits`

        Attributes inherited from :class:`~music21.graph.Graph`: :attr:`~music21.graph.Graph.doneAction`, :attr:`~music21.graph.Graph.hideYGrid`, :attr:`~music21.graph.Graph.fontFamily`, :attr:`~music21.graph.Graph.colors`, :attr:`~music21.graph.Graph.axisKeys`, :attr:`~music21.graph.Graph.marker`, :attr:`~music21.graph.Graph.axis`, :attr:`~music21.graph.Graph.title`, :attr:`~music21.graph.Graph.markerSize`, :attr:`~music21.graph.Graph.xTickLabelVerticalAlignment`, :attr:`~music21.graph.Graph.colorGrid`, :attr:`~music21.graph.Graph.titleFontSize`, :attr:`~music21.graph.Graph.colorBackgroundFigure`, :attr:`~music21.graph.Graph.tickFontSize`, :attr:`~music21.graph.Graph.grid`, :attr:`~music21.graph.Graph.alpha`, :attr:`~music21.graph.Graph.labelFontSize`, :attr:`~music21.graph.Graph.data`, :attr:`~music21.graph.Graph.xTickLabelHorizontalAlignment`, :attr:`~music21.graph.Graph.hideXGrid`, :attr:`~music21.graph.Graph.figureSize`, :attr:`~music21.graph.Graph.colorBackgroundData`, :attr:`~music21.graph.Graph.xTickLabelRotation`, :attr:`~music21.graph.Graph.dpi`

    **GraphGroupedVerticalBar** **methods**

        .. method:: labelBars(ax, rects)

            No documentation.


        .. method:: process()

            No documentation.


        Methods inherited from :class:`~music21.graph.Graph`: :meth:`~music21.graph.Graph.done`, :meth:`~music21.graph.Graph.setAxisLabel`, :meth:`~music21.graph.Graph.setAxisRange`, :meth:`~music21.graph.Graph.setData`, :meth:`~music21.graph.Graph.setDoneAction`, :meth:`~music21.graph.Graph.setFigureSize`, :meth:`~music21.graph.Graph.setIntegerTicksFromData`, :meth:`~music21.graph.Graph.setTicks`, :meth:`~music21.graph.Graph.setTitle`, :meth:`~music21.graph.Graph.show`, :meth:`~music21.graph.Graph.write`


GraphHistogram
--------------

Inherits from: :class:`~music21.graph.Graph`

.. class:: GraphHistogram(*args, **keywords)

    Graph the count of a single element.

    Data set is simply a list of x and y pairs, where there
    is only one of each x value, and y value is the count or magnitude
    of that value



    >>> from music21 import *
    >>> import random
    >>> g = graph.GraphHistogram()
    >>> data = [(x, random.choice(range(30))) for x in range(50)]
    >>> g.setData(data)
    >>> g.process()




    .. image:: images/GraphHistogram.*
            :width: 600





    **GraphHistogram** **attributes**

        Attributes without Documentation: `binWidth`

        Attributes inherited from :class:`~music21.graph.Graph`: :attr:`~music21.graph.Graph.doneAction`, :attr:`~music21.graph.Graph.hideYGrid`, :attr:`~music21.graph.Graph.fontFamily`, :attr:`~music21.graph.Graph.colors`, :attr:`~music21.graph.Graph.axisKeys`, :attr:`~music21.graph.Graph.marker`, :attr:`~music21.graph.Graph.axis`, :attr:`~music21.graph.Graph.title`, :attr:`~music21.graph.Graph.markerSize`, :attr:`~music21.graph.Graph.xTickLabelVerticalAlignment`, :attr:`~music21.graph.Graph.colorGrid`, :attr:`~music21.graph.Graph.titleFontSize`, :attr:`~music21.graph.Graph.colorBackgroundFigure`, :attr:`~music21.graph.Graph.tickFontSize`, :attr:`~music21.graph.Graph.grid`, :attr:`~music21.graph.Graph.alpha`, :attr:`~music21.graph.Graph.labelFontSize`, :attr:`~music21.graph.Graph.data`, :attr:`~music21.graph.Graph.xTickLabelHorizontalAlignment`, :attr:`~music21.graph.Graph.hideXGrid`, :attr:`~music21.graph.Graph.figureSize`, :attr:`~music21.graph.Graph.colorBackgroundData`, :attr:`~music21.graph.Graph.xTickLabelRotation`, :attr:`~music21.graph.Graph.dpi`

    **GraphHistogram** **methods**

        .. method:: process()

            No documentation.


        Methods inherited from :class:`~music21.graph.Graph`: :meth:`~music21.graph.Graph.done`, :meth:`~music21.graph.Graph.setAxisLabel`, :meth:`~music21.graph.Graph.setAxisRange`, :meth:`~music21.graph.Graph.setData`, :meth:`~music21.graph.Graph.setDoneAction`, :meth:`~music21.graph.Graph.setFigureSize`, :meth:`~music21.graph.Graph.setIntegerTicksFromData`, :meth:`~music21.graph.Graph.setTicks`, :meth:`~music21.graph.Graph.setTitle`, :meth:`~music21.graph.Graph.show`, :meth:`~music21.graph.Graph.write`


GraphHorizontalBar
------------------

Inherits from: :class:`~music21.graph.Graph`

.. class:: GraphHorizontalBar(*args, **keywords)


    Numerous horizontal bars in discrete channels, where bars can be incomplete and/or overlap.

    Data provided is a list of pairs, where the first value becomes the key, the second value is a list of x-start, x-length values.



    >>> from music21 import *
    >>> a = graph.GraphHorizontalBar(doneAction='show')
    >>> data = [('Chopin', [(1810, 1849-1810)]), ('Schumanns', [(1810, 1856-1810), (1819, 1896-1819)]), ('Brahms', [(1833, 1897-1833)])]
    >>> a.setData(data)
    >>> a.process()




    .. image:: images/GraphHorizontalBar.*
            :width: 600






GraphHorizontalBarWeighted
--------------------------

Inherits from: :class:`~music21.graph.Graph`

.. class:: GraphHorizontalBarWeighted(*args, **keywords)



    Numerous horizontal bars in discrete channels,
    where bars can be incomplete and/or overlap, and
    can have different heights and colors within their
    respective channel.




GraphNetworxGraph
-----------------

Inherits from: :class:`~music21.graph.Graph`

.. class:: GraphNetworxGraph(*args, **keywords)


    Grid a networkx graph -- which is a graph of nodes and edges.
    Requires the optional networkx module.




    **GraphNetworxGraph** **attributes**

        .. attribute:: networkxGraph

            An instance of a networkx graph object.


        Attributes inherited from :class:`~music21.graph.Graph`: :attr:`~music21.graph.Graph.doneAction`, :attr:`~music21.graph.Graph.hideYGrid`, :attr:`~music21.graph.Graph.fontFamily`, :attr:`~music21.graph.Graph.colors`, :attr:`~music21.graph.Graph.axisKeys`, :attr:`~music21.graph.Graph.marker`, :attr:`~music21.graph.Graph.axis`, :attr:`~music21.graph.Graph.title`, :attr:`~music21.graph.Graph.markerSize`, :attr:`~music21.graph.Graph.xTickLabelVerticalAlignment`, :attr:`~music21.graph.Graph.colorGrid`, :attr:`~music21.graph.Graph.titleFontSize`, :attr:`~music21.graph.Graph.colorBackgroundFigure`, :attr:`~music21.graph.Graph.tickFontSize`, :attr:`~music21.graph.Graph.grid`, :attr:`~music21.graph.Graph.alpha`, :attr:`~music21.graph.Graph.labelFontSize`, :attr:`~music21.graph.Graph.data`, :attr:`~music21.graph.Graph.xTickLabelHorizontalAlignment`, :attr:`~music21.graph.Graph.hideXGrid`, :attr:`~music21.graph.Graph.figureSize`, :attr:`~music21.graph.Graph.colorBackgroundData`, :attr:`~music21.graph.Graph.xTickLabelRotation`, :attr:`~music21.graph.Graph.dpi`

    **GraphNetworxGraph** **methods**

        .. method:: process()

            No documentation.


        Methods inherited from :class:`~music21.graph.Graph`: :meth:`~music21.graph.Graph.done`, :meth:`~music21.graph.Graph.setAxisLabel`, :meth:`~music21.graph.Graph.setAxisRange`, :meth:`~music21.graph.Graph.setData`, :meth:`~music21.graph.Graph.setDoneAction`, :meth:`~music21.graph.Graph.setFigureSize`, :meth:`~music21.graph.Graph.setIntegerTicksFromData`, :meth:`~music21.graph.Graph.setTicks`, :meth:`~music21.graph.Graph.setTitle`, :meth:`~music21.graph.Graph.show`, :meth:`~music21.graph.Graph.write`


GraphScatter
------------

Inherits from: :class:`~music21.graph.Graph`

.. class:: GraphScatter(*args, **keywords)

    Graph two parameters in a scatter plot. Data representation is a list of points of values.



    >>> from music21 import *
    >>> g = graph.GraphScatter()
    >>> data = [(x, x*x) for x in range(50)]
    >>> g.setData(data)
    >>> g.process()




    .. image:: images/GraphScatter.*
            :width: 600





GraphScatterWeighted
--------------------

Inherits from: :class:`~music21.graph.Graph`

.. class:: GraphScatterWeighted(*args, **keywords)

    A scatter plot where points are scaled in size to represent the number of values stored within.



    >>> from music21 import *
    >>> g = graph.GraphScatterWeighted()
    >>> data = [(23, 15, 234), (10, 23, 12), (4, 23, 5), (15, 18, 120)]
    >>> g.setData(data)
    >>> g.process()




    .. image:: images/GraphScatterWeighted.*
            :width: 600






Plot3DBars
----------

Inherits from: :class:`~music21.graph.PlotStream`

.. class:: Plot3DBars(streamObj, *args, **keywords)

    Base class for Stream plotting classes.



    **Plot3DBars** **attributes**

        Attributes without Documentation: `format`

        Attributes inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.values`

    **Plot3DBars** **properties**

        Properties inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.id`

    **Plot3DBars** **methods**

        Methods inherited from :class:`~music21.graph.PlotStream`: :meth:`~music21.graph.PlotStream.process`, :meth:`~music21.graph.PlotStream.remapQuarterLength`, :meth:`~music21.graph.PlotStream.show`, :meth:`~music21.graph.PlotStream.ticksDynamics`, :meth:`~music21.graph.PlotStream.ticksOffset`, :meth:`~music21.graph.PlotStream.ticksPitchClass`, :meth:`~music21.graph.PlotStream.ticksPitchClassUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceChromatic`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceOctave`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertone`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertoneUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceUsage`, :meth:`~music21.graph.PlotStream.ticksQuarterLength`, :meth:`~music21.graph.PlotStream.write`


PlotFeatures
------------

Inherits from: :class:`~music21.graph.PlotMultiStream`

.. class:: PlotFeatures(streamList, featureExtractors, labelList=[], *args, **keywords)


    FeatureExtractors can be ids or classes.



    **PlotFeatures** **attributes**

        Attributes without Documentation: `format`

        Attributes inherited from :class:`~music21.graph.PlotMultiStream`: :attr:`~music21.graph.PlotMultiStream.values`

    **PlotFeatures** **methods**

        Methods inherited from :class:`~music21.graph.PlotMultiStream`: :meth:`~music21.graph.PlotMultiStream.process`, :meth:`~music21.graph.PlotMultiStream.show`, :meth:`~music21.graph.PlotMultiStream.write`


PlotHistogram
-------------

Inherits from: :class:`~music21.graph.PlotStream`

.. class:: PlotHistogram(streamObj, *args, **keywords)


    Base class for Stream plotting classes.

    Plots take a Stream as their arguments, Graphs take any data.




    **PlotHistogram** **attributes**

        Attributes without Documentation: `format`

        Attributes inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.values`

    **PlotHistogram** **properties**

        Properties inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.id`

    **PlotHistogram** **methods**

        Methods inherited from :class:`~music21.graph.PlotStream`: :meth:`~music21.graph.PlotStream.process`, :meth:`~music21.graph.PlotStream.remapQuarterLength`, :meth:`~music21.graph.PlotStream.show`, :meth:`~music21.graph.PlotStream.ticksDynamics`, :meth:`~music21.graph.PlotStream.ticksOffset`, :meth:`~music21.graph.PlotStream.ticksPitchClass`, :meth:`~music21.graph.PlotStream.ticksPitchClassUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceChromatic`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceOctave`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertone`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertoneUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceUsage`, :meth:`~music21.graph.PlotStream.ticksQuarterLength`, :meth:`~music21.graph.PlotStream.write`


PlotHorizontalBar
-----------------

Inherits from: :class:`~music21.graph.PlotStream`

.. class:: PlotHorizontalBar(streamObj, *args, **keywords)

    A graph of events, sorted by pitch, over time



    **PlotHorizontalBar** **attributes**

        Attributes without Documentation: `format`

        Attributes inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.values`

    **PlotHorizontalBar** **properties**

        Properties inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.id`

    **PlotHorizontalBar** **methods**

        Methods inherited from :class:`~music21.graph.PlotStream`: :meth:`~music21.graph.PlotStream.process`, :meth:`~music21.graph.PlotStream.remapQuarterLength`, :meth:`~music21.graph.PlotStream.show`, :meth:`~music21.graph.PlotStream.ticksDynamics`, :meth:`~music21.graph.PlotStream.ticksOffset`, :meth:`~music21.graph.PlotStream.ticksPitchClass`, :meth:`~music21.graph.PlotStream.ticksPitchClassUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceChromatic`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceOctave`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertone`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertoneUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceUsage`, :meth:`~music21.graph.PlotStream.ticksQuarterLength`, :meth:`~music21.graph.PlotStream.write`


PlotHorizontalBarWeighted
-------------------------

Inherits from: :class:`~music21.graph.PlotStream`

.. class:: PlotHorizontalBarWeighted(streamObj, *args, **keywords)

    A base class for plots of Scores with weighted (by height) horizontal bars. Many different weighted segments can provide a representation of a dynamic parameter of a Part.





    **PlotHorizontalBarWeighted** **attributes**

        Attributes without Documentation: `format`

        Attributes inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.values`

    **PlotHorizontalBarWeighted** **properties**

        Properties inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.id`

    **PlotHorizontalBarWeighted** **methods**

        Methods inherited from :class:`~music21.graph.PlotStream`: :meth:`~music21.graph.PlotStream.process`, :meth:`~music21.graph.PlotStream.remapQuarterLength`, :meth:`~music21.graph.PlotStream.show`, :meth:`~music21.graph.PlotStream.ticksDynamics`, :meth:`~music21.graph.PlotStream.ticksOffset`, :meth:`~music21.graph.PlotStream.ticksPitchClass`, :meth:`~music21.graph.PlotStream.ticksPitchClassUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceChromatic`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceOctave`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertone`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertoneUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceUsage`, :meth:`~music21.graph.PlotStream.ticksQuarterLength`, :meth:`~music21.graph.PlotStream.write`


PlotMultiStream
---------------



.. class:: PlotMultiStream(streamList, labelList=[], *args, **keywords)

    Approaches to plotting and graphing multiple Streams. A base class from which Stream plotting Classes inherit.




    Provide a list of Streams as an argument. Optionally provide an additional list of labels for each list. If `flatten` is True, the Streams will automatically be flattened.



    **PlotMultiStream** **attributes**

        Attributes without Documentation: `format`, `values`

    **PlotMultiStream** **methods**

        .. method:: process()

            This will process all data, as well as call the done() method. What happens when the done() is called is determined by the the keyword argument `doneAction`; options are 'show' (display immediately), 'write' (write the file to a supplied file path), and None (do processing but do not write or show a graph).

            Subclass dependent data extracted is stored in the self.data attribute.



        .. method:: show()

            Call internal Graphs show() method independently of doneAction set and run with process()



        .. method:: write(fp=None)

            Call internal Graphs write() method independently of doneAction set and run with process()




PlotScatter
-----------

Inherits from: :class:`~music21.graph.PlotStream`

.. class:: PlotScatter(streamObj, *args, **keywords)

    Base class for 2D Scatter plots.



    **PlotScatter** **attributes**

        Attributes without Documentation: `format`

        Attributes inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.values`

    **PlotScatter** **properties**

        Properties inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.id`

    **PlotScatter** **methods**

        Methods inherited from :class:`~music21.graph.PlotStream`: :meth:`~music21.graph.PlotStream.process`, :meth:`~music21.graph.PlotStream.remapQuarterLength`, :meth:`~music21.graph.PlotStream.show`, :meth:`~music21.graph.PlotStream.ticksDynamics`, :meth:`~music21.graph.PlotStream.ticksOffset`, :meth:`~music21.graph.PlotStream.ticksPitchClass`, :meth:`~music21.graph.PlotStream.ticksPitchClassUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceChromatic`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceOctave`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertone`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertoneUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceUsage`, :meth:`~music21.graph.PlotStream.ticksQuarterLength`, :meth:`~music21.graph.PlotStream.write`


PlotScatterWeighted
-------------------

Inherits from: :class:`~music21.graph.PlotStream`

.. class:: PlotScatterWeighted(streamObj, *args, **keywords)


    **PlotScatterWeighted** **attributes**

        Attributes without Documentation: `format`

        Attributes inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.values`

    **PlotScatterWeighted** **properties**

        Properties inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.id`

    **PlotScatterWeighted** **methods**

        Methods inherited from :class:`~music21.graph.PlotStream`: :meth:`~music21.graph.PlotStream.process`, :meth:`~music21.graph.PlotStream.remapQuarterLength`, :meth:`~music21.graph.PlotStream.show`, :meth:`~music21.graph.PlotStream.ticksDynamics`, :meth:`~music21.graph.PlotStream.ticksOffset`, :meth:`~music21.graph.PlotStream.ticksPitchClass`, :meth:`~music21.graph.PlotStream.ticksPitchClassUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceChromatic`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceOctave`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertone`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertoneUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceUsage`, :meth:`~music21.graph.PlotStream.ticksQuarterLength`, :meth:`~music21.graph.PlotStream.write`


PlotStream
----------



.. class:: PlotStream(streamObj, flatten=True, *args, **keywords)

    Approaches to plotting and graphing a Stream. A base class from which Stream plotting Classes inherit.

    This class has a number of public attributes, but these are generally not intended for direct user application. The `data` attribute, for example, exposes the internal data format of this plotting routine for testing, but no effort is made to make this data useful outside of the context of the Plot.



    Provide a Stream as an arguement. If `flatten` is True, the Stream will automatically be flattened.



    **PlotStream** **attributes**

        Attributes without Documentation: `format`, `values`

    **PlotStream** **properties**

        .. attribute:: id


            Each PlotStream has a unique id that consists of its format and a string that defines the parameters that are graphed.



    **PlotStream** **methods**

        .. method:: process()

            This will process all data, as well as call the done() method. What happens when the done() is called is determined by the the keyword argument `doneAction`; options are 'show' (display immediately), 'write' (write the file to a supplied file path), and None (do processing but do not write or show a graph).

            Subclass dependent data extracted is stored in the self.data attribute.



        .. method:: remapQuarterLength(x)

            Remap all quarter lengths.



        .. method:: show()

            Call internal Graphs show() method independently of doneAction set and run with process()



        .. method:: ticksDynamics(minNameIndex=None, maxNameIndex=None)

            Utility method to get ticks in dynamic values.



            >>> from music21 import stream; s = stream.Stream()
            >>> a = PlotStream(s)
            >>> a.ticksDynamics()
            [[0, '$pppppp$'], [1, '$ppppp$'], [2, '$pppp$'], [3, '$ppp$'], [4, '$pp$'], [5, '$p$'], [6, '$mp$'], [7, '$mf$'], [8, '$f$'], [9, '$fp$'], [10, '$sf$'], [11, '$ff$'], [12, '$fff$'], [13, '$ffff$'], [14, '$fffff$'], [15, '$ffffff$']]
            ⁠ 
            >>> a.ticksDynamics(3,6)
            [[3, '$ppp$'], [4, '$pp$'], [5, '$p$'], [6, '$mp$']]




        .. method:: ticksOffset(offsetMin=None, offsetMax=None, offsetStepSize=None, displayMeasureNumberZero=False, minMaxOnly=False, remap=False)

            Get offset ticks. If Measures are found, they will be used to create ticks. If not, `offsetStepSize` will be used to create offset ticks between min and max. The `remap` parameter is not yet used.

            If `minMaxOnly` is True, only the first and last values will be provided.



            >>> from music21 import corpus, stream, note
            >>> s = corpus.parse('bach/bwv281.xml')
            >>> a = PlotStream(s)
            >>> a.ticksOffset() # on whole score, showing anacrusis spacing
            [[0.0, '0'], [1.0, '1'], [5.0, '2'], [9.0, '3'], [13.0, '4'], [17.0, '5'], [21.0, '6'], [25.0, '7'], [29.0, '8']]
            ⁠ 
            >>> a = PlotStream(s.parts[0].flat) # on a Part
            >>> a.ticksOffset() # on whole score, showing anacrusis spacing
            [[0.0, '0'], [1.0, '1'], [5.0, '2'], [9.0, '3'], [13.0, '4'], [17.0, '5'], [21.0, '6'], [25.0, '7'], [29.0, '8']]
            >>> a.ticksOffset(8, 12, 2)
            [[9.0, '3']]



            >>> a = PlotStream(s.parts[0].flat) # on a Flat collection
            >>> a.ticksOffset(8, 12, 2)
            [[9.0, '3']]
            ⁠ 
            >>> n = note.Note('a') # on a raw collection of notes with no measures
            >>> s = stream.Stream()
            >>> s.repeatAppend(n, 10)
            >>> a = PlotStream(s) # on a Part
            >>> a.ticksOffset() # on whole score
            [[0, '0'], [10, '10']]



        .. method:: ticksPitchClass(pcMin=0, pcMax=11)

            Utility method to get ticks in pitch classes



            >>> from music21 import corpus
            >>> s = corpus.parse('bach/bwv324.xml')
            >>> a = PlotStream(s)
            >>> [x for x,y in a.ticksPitchClass()]
            [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]



        .. method:: ticksPitchClassUsage(pcMin=0, pcMax=11, showEnharmonic=True, blankLabelUnused=True, hideUnused=False)

            Get ticks and labels for pitch classes based on usage. That is, show the most commonly used enharmonic first.



            >>> from music21 import corpus
            >>> s = corpus.parse('bach/bwv324.xml')
            >>> a = PlotStream(s)
            >>> [x for x, y in a.ticksPitchClassUsage(hideUnused=True)]
            [0, 2, 3, 4, 6, 7, 9, 11]
            ⁠ 
            >>> s = corpus.parse('bach/bwv281.xml')
            >>> a = PlotStream(s)
            >>> [x for x, y in a.ticksPitchClassUsage(showEnharmonic=True, hideUnused=True)]
            [0, 2, 3, 4, 5, 7, 9, 10, 11]
            >>> [x for x, y in a.ticksPitchClassUsage(showEnharmonic=True, blankLabelUnused=False)]
            [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]



            >>> s = corpus.parse('schumann/opus41no1/movement2.xml')
            >>> a = PlotStream(s)
            >>> [x for x, y in a.ticksPitchClassUsage(showEnharmonic=True)]
            [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]



        .. method:: ticksPitchSpaceChromatic(pitchMin=36, pitchMax=100)

            Utility method to get ticks in pitch space values.



            >>> from music21 import stream; s = stream.Stream()
            >>> a = PlotStream(s)
            >>> [x for x,y in a.ticksPitchSpaceChromatic(60,72)]
            [60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72]



        .. method:: ticksPitchSpaceOctave(pitchMin=36, pitchMax=100)

            Utility method to get ticks in pitch space only for every octave.



            >>> from music21 import stream; s = stream.Stream()
            >>> a = PlotStream(s)
            >>> a.ticksPitchSpaceOctave()
            [[36, 'C2'], [48, 'C3'], [60, 'C4'], [72, 'C5'], [84, 'C6'], [96, 'C7']]



        .. method:: ticksPitchSpaceQuartertone(pitchMin=36, pitchMax=100)

            Utility method to get ticks in pitch space values.



        .. method:: ticksPitchSpaceQuartertoneUsage(pcMin=36, pcMax=72, showEnharmonic=False, blankLabelUnused=True, hideUnused=False)

            Get ticks and labels for pitch space based on usage. That is, show the most commonly used enharmonic first.



        .. method:: ticksPitchSpaceUsage(pcMin=36, pcMax=72, showEnharmonic=False, blankLabelUnused=True, hideUnused=False)

            Get ticks and labels for pitch space based on usage. That is, show the most commonly used enharmonic first.



            >>> from music21 import corpus
            >>> s = corpus.parse('bach/bwv324.xml')
            >>> a = PlotStream(s.parts[0])
            >>> [x for x, y in a.ticksPitchSpaceUsage(hideUnused=True)]
            [64, 66, 67, 69, 71, 72]
            ⁠ 
            >>> s = corpus.parse('schumann/opus41no1/movement2.xml')
            >>> a = PlotStream(s)
            >>> [x for x, y in a.ticksPitchSpaceUsage(showEnharmonic=True, hideUnused=True)]
            [36, 38, 40, 41, 43, 44, 45, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72]



        .. method:: ticksQuarterLength(min=0.25, max=4, remap=True)

            Get ticks for quarterLength. If `remap` is True, the remapQuarterLength() function will be used to scale displayed quarter lengths by log base 2.



            >>> from music21 import stream; s = stream.Stream()
            >>> a = PlotStream(s)



        .. method:: write(fp=None)

            Call internal Graphs write() method independently of doneAction set and run with process()




PlotWindowedAardenEssen
-----------------------

Inherits from: :class:`~music21.graph.PlotWindowedAnalysis`, :class:`~music21.graph.PlotStream`

.. class:: PlotWindowedAardenEssen(streamObj, *args, **keywords)

    Stream plotting of windowed version of Aarden-Essen analysis routine. See :class:`~music21.analysis.discrete.AardenEssen` for more details.



    **PlotWindowedAardenEssen** **attributes**

        Attributes without Documentation: `values`

        Attributes inherited from :class:`~music21.graph.PlotWindowedAnalysis`: :attr:`~music21.graph.PlotWindowedAnalysis.format`

    **PlotWindowedAardenEssen** **properties**

        Properties inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.id`

    **PlotWindowedAardenEssen** **methods**

        Methods inherited from :class:`~music21.graph.PlotWindowedAnalysis`: :meth:`~music21.graph.PlotWindowedAnalysis.process`, :meth:`~music21.graph.PlotWindowedAnalysis.write`

        Methods inherited from :class:`~music21.graph.PlotStream`: :meth:`~music21.graph.PlotStream.remapQuarterLength`, :meth:`~music21.graph.PlotStream.show`, :meth:`~music21.graph.PlotStream.ticksDynamics`, :meth:`~music21.graph.PlotStream.ticksOffset`, :meth:`~music21.graph.PlotStream.ticksPitchClass`, :meth:`~music21.graph.PlotStream.ticksPitchClassUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceChromatic`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceOctave`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertone`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertoneUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceUsage`, :meth:`~music21.graph.PlotStream.ticksQuarterLength`


PlotWindowedAnalysis
--------------------

Inherits from: :class:`~music21.graph.PlotStream`

.. class:: PlotWindowedAnalysis(streamObj, processor=None, *args, **keywords)

    Base Plot for windowed analysis routines.




    **PlotWindowedAnalysis** **attributes**

        Attributes without Documentation: `format`

        Attributes inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.values`

    **PlotWindowedAnalysis** **properties**

        Properties inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.id`

    **PlotWindowedAnalysis** **methods**

        .. method:: process()

            Process method here overridden to provide legend.



        .. method:: write(fp=None)

            Process method here overridden to provide legend.



        Methods inherited from :class:`~music21.graph.PlotStream`: :meth:`~music21.graph.PlotStream.remapQuarterLength`, :meth:`~music21.graph.PlotStream.show`, :meth:`~music21.graph.PlotStream.ticksDynamics`, :meth:`~music21.graph.PlotStream.ticksOffset`, :meth:`~music21.graph.PlotStream.ticksPitchClass`, :meth:`~music21.graph.PlotStream.ticksPitchClassUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceChromatic`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceOctave`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertone`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertoneUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceUsage`, :meth:`~music21.graph.PlotStream.ticksQuarterLength`


PlotWindowedBellmanBudge
------------------------

Inherits from: :class:`~music21.graph.PlotWindowedAnalysis`, :class:`~music21.graph.PlotStream`

.. class:: PlotWindowedBellmanBudge(streamObj, *args, **keywords)

    Stream plotting of windowed version of Bellman-Budge analysis routine. See :class:`~music21.analysis.discrete.BellmanBudge` for more details.



    **PlotWindowedBellmanBudge** **attributes**

        Attributes without Documentation: `values`

        Attributes inherited from :class:`~music21.graph.PlotWindowedAnalysis`: :attr:`~music21.graph.PlotWindowedAnalysis.format`

    **PlotWindowedBellmanBudge** **properties**

        Properties inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.id`

    **PlotWindowedBellmanBudge** **methods**

        Methods inherited from :class:`~music21.graph.PlotWindowedAnalysis`: :meth:`~music21.graph.PlotWindowedAnalysis.process`, :meth:`~music21.graph.PlotWindowedAnalysis.write`

        Methods inherited from :class:`~music21.graph.PlotStream`: :meth:`~music21.graph.PlotStream.remapQuarterLength`, :meth:`~music21.graph.PlotStream.show`, :meth:`~music21.graph.PlotStream.ticksDynamics`, :meth:`~music21.graph.PlotStream.ticksOffset`, :meth:`~music21.graph.PlotStream.ticksPitchClass`, :meth:`~music21.graph.PlotStream.ticksPitchClassUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceChromatic`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceOctave`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertone`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertoneUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceUsage`, :meth:`~music21.graph.PlotStream.ticksQuarterLength`


PlotWindowedKrumhanslKessler
----------------------------

Inherits from: :class:`~music21.graph.PlotWindowedAnalysis`, :class:`~music21.graph.PlotStream`

.. class:: PlotWindowedKrumhanslKessler(streamObj, *args, **keywords)

    Stream plotting of windowed version of Krumhansl-Kessler analysis routine. See :class:`~music21.analysis.discrete.KrumhanslKessler` for more details.



    **PlotWindowedKrumhanslKessler** **attributes**

        Attributes without Documentation: `values`

        Attributes inherited from :class:`~music21.graph.PlotWindowedAnalysis`: :attr:`~music21.graph.PlotWindowedAnalysis.format`

    **PlotWindowedKrumhanslKessler** **properties**

        Properties inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.id`

    **PlotWindowedKrumhanslKessler** **methods**

        Methods inherited from :class:`~music21.graph.PlotWindowedAnalysis`: :meth:`~music21.graph.PlotWindowedAnalysis.process`, :meth:`~music21.graph.PlotWindowedAnalysis.write`

        Methods inherited from :class:`~music21.graph.PlotStream`: :meth:`~music21.graph.PlotStream.remapQuarterLength`, :meth:`~music21.graph.PlotStream.show`, :meth:`~music21.graph.PlotStream.ticksDynamics`, :meth:`~music21.graph.PlotStream.ticksOffset`, :meth:`~music21.graph.PlotStream.ticksPitchClass`, :meth:`~music21.graph.PlotStream.ticksPitchClassUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceChromatic`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceOctave`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertone`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertoneUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceUsage`, :meth:`~music21.graph.PlotStream.ticksQuarterLength`


PlotWindowedSimpleWeights
-------------------------

Inherits from: :class:`~music21.graph.PlotWindowedAnalysis`, :class:`~music21.graph.PlotStream`

.. class:: PlotWindowedSimpleWeights(streamObj, *args, **keywords)

    Stream plotting of windowed version of Simple Weights analysis routine. See :class:`~music21.analysis.discrete.SimpleWeights` for more details.



    **PlotWindowedSimpleWeights** **attributes**

        Attributes without Documentation: `values`

        Attributes inherited from :class:`~music21.graph.PlotWindowedAnalysis`: :attr:`~music21.graph.PlotWindowedAnalysis.format`

    **PlotWindowedSimpleWeights** **properties**

        Properties inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.id`

    **PlotWindowedSimpleWeights** **methods**

        Methods inherited from :class:`~music21.graph.PlotWindowedAnalysis`: :meth:`~music21.graph.PlotWindowedAnalysis.process`, :meth:`~music21.graph.PlotWindowedAnalysis.write`

        Methods inherited from :class:`~music21.graph.PlotStream`: :meth:`~music21.graph.PlotStream.remapQuarterLength`, :meth:`~music21.graph.PlotStream.show`, :meth:`~music21.graph.PlotStream.ticksDynamics`, :meth:`~music21.graph.PlotStream.ticksOffset`, :meth:`~music21.graph.PlotStream.ticksPitchClass`, :meth:`~music21.graph.PlotStream.ticksPitchClassUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceChromatic`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceOctave`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertone`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertoneUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceUsage`, :meth:`~music21.graph.PlotStream.ticksQuarterLength`


PlotWindowedTemperleyKostkaPayne
--------------------------------

Inherits from: :class:`~music21.graph.PlotWindowedAnalysis`, :class:`~music21.graph.PlotStream`

.. class:: PlotWindowedTemperleyKostkaPayne(streamObj, *args, **keywords)

    Stream plotting of windowed version of Temperley-Kostka-Payne analysis routine. See :class:`~music21.analysis.discrete.TemperleyKostkaPayne` for more details.



    **PlotWindowedTemperleyKostkaPayne** **attributes**

        Attributes without Documentation: `values`

        Attributes inherited from :class:`~music21.graph.PlotWindowedAnalysis`: :attr:`~music21.graph.PlotWindowedAnalysis.format`

    **PlotWindowedTemperleyKostkaPayne** **properties**

        Properties inherited from :class:`~music21.graph.PlotStream`: :attr:`~music21.graph.PlotStream.id`

    **PlotWindowedTemperleyKostkaPayne** **methods**

        Methods inherited from :class:`~music21.graph.PlotWindowedAnalysis`: :meth:`~music21.graph.PlotWindowedAnalysis.process`, :meth:`~music21.graph.PlotWindowedAnalysis.write`

        Methods inherited from :class:`~music21.graph.PlotStream`: :meth:`~music21.graph.PlotStream.remapQuarterLength`, :meth:`~music21.graph.PlotStream.show`, :meth:`~music21.graph.PlotStream.ticksDynamics`, :meth:`~music21.graph.PlotStream.ticksOffset`, :meth:`~music21.graph.PlotStream.ticksPitchClass`, :meth:`~music21.graph.PlotStream.ticksPitchClassUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceChromatic`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceOctave`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertone`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceQuartertoneUsage`, :meth:`~music21.graph.PlotStream.ticksPitchSpaceUsage`, :meth:`~music21.graph.PlotStream.ticksQuarterLength`


