.. _moduleGraph:

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

.. WARNING: DO NOT EDIT THIS FILE: AUTOMATICALLY GENERATED

.. 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:: 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.PlotWindowedSadoianAmbitus` 

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

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

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

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

    

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.parseWork('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.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.parseWork('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.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.parseWork('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.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. 

    >>> from music21 import *
    >>> s = corpus.parseWork('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.ticksPitchSpaceUsage`, :meth:`~music21.graph.PlotStream.ticksQuarterLength`


PlotWindowedSadoianAmbitus
--------------------------

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

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

    Stream plotting of basic pitch span. 

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

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

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

    

    **PlotWindowedSadoianAmbitus** **attributes**

        Attributes without Documentation: `values`

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

    **PlotWindowedSadoianAmbitus** **properties**

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

    **PlotWindowedSadoianAmbitus** **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.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.parseWork('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.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.parseWork('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.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.parseWork('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.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.parseWork('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.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.parseWork('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.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.parseWork('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.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.parseWork('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.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.parseWork('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.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.parseWork('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.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.ticksPitchSpaceUsage`, :meth:`~music21.graph.PlotStream.ticksQuarterLength`, :meth:`~music21.graph.PlotStream.write`


Graph
-----



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

    An object representing a graph or plot, automating the creation and configuration of this graph in matplotlib. Graph objects do not manipulate Streams or other music21 data; they only manipulate raw data formatted for each Graph subclass. Numerous keyword arguments can be provided for configuration: alpha,  colorBackgroundData, colorBackgroundFigure, colorGrid, title, doneAction, figureSize, colors, tickFontSize, titleFontSize, labelFontSize, fontFamily. The doneAction determines what happens after graph processing: either write a file ('write'), open an interactive GUI browser ('show') or None (do processing but do not write output. 

    A base-class for basic setup of graphs, abstracting functionality provided by matplotlib. Optional keyword arguments: alpha, colorBackgroundData, colorBackgroundFigure, colorGrid, title, doneAction, figureSize, tickFontSize, titleFontSize, labelFontSize, fontFamily 

    >>> a = Graph(title='green')

    **Graph** **attributes**

        Attributes without Documentation: `fontFamily`, `doneAction`, `title`, `colorBackgroundFigure`, `colors`, `tickFontSize`, `colorGrid`, `figureSize`, `colorBackgroundData`, `axisKeys`, `grid`, `titleFontSize`, `alpha`, `labelFontSize`, `data`, `dpi`, `axis`

    **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, pad=False)

            No documentation. 

        .. method:: setData(data)

            No documentation. 

        .. method:: setDoneAction(action)

            No documentation. 

        .. method:: setFigureSize(figSize)

            Set the figure size as an x,y pair. Scales all graph components but not always all labels. 

        .. method:: setTicks(axisKey, pairs)

            paris are positions and labels 

        .. 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.fontFamily`, :attr:`~music21.graph.Graph.doneAction`, :attr:`~music21.graph.Graph.title`, :attr:`~music21.graph.Graph.colorBackgroundFigure`, :attr:`~music21.graph.Graph.colors`, :attr:`~music21.graph.Graph.tickFontSize`, :attr:`~music21.graph.Graph.colorGrid`, :attr:`~music21.graph.Graph.figureSize`, :attr:`~music21.graph.Graph.colorBackgroundData`, :attr:`~music21.graph.Graph.axisKeys`, :attr:`~music21.graph.Graph.grid`, :attr:`~music21.graph.Graph.titleFontSize`, :attr:`~music21.graph.Graph.alpha`, :attr:`~music21.graph.Graph.labelFontSize`, :attr:`~music21.graph.Graph.data`, :attr:`~music21.graph.Graph.dpi`, :attr:`~music21.graph.Graph.axis`

    **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.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

    


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

    


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

    


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.ticksPitchSpaceUsage`, :meth:`~music21.graph.PlotStream.ticksQuarterLength`, :meth:`~music21.graph.PlotStream.write`


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

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

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

    Base class for Stream plotting classes. 

    

    **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.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.ticksPitchSpaceUsage`, :meth:`~music21.graph.PlotStream.ticksQuarterLength`, :meth:`~music21.graph.PlotStream.write`


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.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.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. 

    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). 

        .. 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.parseWork('bach/bwv281.xml')
            >>> a = PlotStream(s)
            >>> a.ticksOffset() # on whole score
            [[4.0, '1'], [8.0, '2'], [12.0, '3'], [16.0, '4'], [20.0, '5'], [24.0, '6'], [28.0, '7'], [32.0, '8']] 
            >>> a = PlotStream(s.parts[0].flat) # on a Part
            >>> a.ticksOffset() # on whole score
            [[4.0, '1'], [8.0, '2'], [12.0, '3'], [16.0, '4'], [20.0, '5'], [24.0, '6'], [28.0, '7'], [32.0, '8']] 
            >>> a.ticksOffset(8, 12, 2)
            [[8.0, '2'], [12.0, '3']] 
            >>> a = PlotStream(s.parts[0].flat) # on a Flat collection
            >>> a.ticksOffset(8, 12, 2)
            [[8.0, '2'], [12.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.parseWork('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.parseWork('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.parseWork('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.parseWork('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:: 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.parseWork('bach/bwv324.xml')
            >>> a = PlotStream(s[0])
            >>> [x for x, y in a.ticksPitchSpaceUsage(hideUnused=True)]
            [64, 66, 67, 69, 71, 72] 
            >>> s = corpus.parseWork('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() 


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.ticksPitchSpaceUsage`, :meth:`~music21.graph.PlotStream.ticksQuarterLength`


