.. _cape-json-ReportPlotCoeff: Iterative Force or Moment Plot ------------------------------ To plot iterative histories of force and/or moment coefficients on one or more component, use the ``"PlotCoeff"`` subfigure. There are many options for this class of subfigure. In addition to standard alignment and caption options, there are options for which component(s) and coefficient(s) to plot, options for how the plots are presented, which iterations to use, output format, and figure sizes. The default caption, which is placed in sans-serif font below the figure, is *Component*/*Coefficient*, which may be confusing if two components are included. For example, a caption such as ``"[LeftWing, RightWing]/CY"`` could be generated automatically. The full list of options is shown below. *P*: :class:`dict` Dictionary of settings for *PlotCoeff* subfigures *Type*: {``"PlotCoeff"``} | :class:`str` Subfigure type *Header*: {``""``} | :class:`str` Heading placed above subfigure (bold, italic) *Position*: ``"t"`` | ``"c"`` | {``"b"``} Vertical alignment of subfigure *Alignment*: ``"left"`` | {``"center"``} Horizontal alignment *Width*: {``0.5``} | :class:`float` Width of subfigure as a fraction of page text width *nPlotFirst*: {``0``} | :class:`int` First iteration to plot; often useful to eliminate startup transients from the plot which may have a much larger scale than the final value *nPlotLast*: {``null``} | :class:`int` If specified, only plot up to this iteration *nPlot*: {``null``} | :class:`int` If specified, plot at most this many iterations; alternative method to hide startup transients *nStats*: :class:`int` Number of iterations to use for statistics; defaults to data book option *nMinStats*: :class:`int` First iteration to allow to be used for mean calculation *nMaxStats*: :class:`int` Maximum number of iterations to allow to be used in statistics *FigWidth*: {``6.0``} | :class:`float` Width of figure internally to Python; affects aspect ratio of figure and font size when integrated into report; decrease this parameter to make text appear larger in report *FigHeight*: {``4.5``} | :class:`float` Similar to *FigWidth* and primarily used to set aspect ratio *Component*: {``"entire"``} | :class:`str` | :class:`list` Component or list of components to plot, must be name(s) of components defined in :file:`Config.xml` *Coefficient*: ``"CA"`` | ``"CY"`` | {``"CN"``} | ``"CLL"`` | ``"CLM"`` | ``"CLN"`` | :class:`list` Force or moment coefficient(s) to plot, any of ``"CA"`` *Delta*: {``0.0``} | :class:`float` If nonzero, plot a horizontal line this value above and below the iterative mean, by default with a dashed red line *StandardDeviation*: {``0.0``} | :class:`float` If nonzero, plot a rectangular box centered on the iterative mean value and spanning vertically above and below the mean this number times the iterative standard deviation; the width of the box shows the iteration window used to compute the statistics *IterativeError*: {``0.0``} | :class:`float` If nonzero, plot a rectangular box centered on the iterative mean value and spanning vertically above and below the mean this number times the iterative uncertainty; the width of the box shows the iteration window used to compute the statistics *ShowMu*: {``[true, false]``} | ``true`` | ``false`` | :class:`list` Whether or not to print the mean value in the upper right corner of the plot; by default show the value of the first component/coefficient and not for the others *ShowSigma*: {``[true, false]``} | ``true`` | ``false`` | :class:`list` Whether or not to print the standard deviation in the upper left *ShowDelta*: {``[true, false]``} | ``true`` | ``false`` | :class:`list` Whether or not to print the fixed delta value in the upper right *ShowEpsilon*: ``true`` | {``false``} Whether or not to print iterative uncertainty in upper left *Format*: {``"pdf"``} | ``"svg"`` | ``"png"`` | :class:`str` Format of graphic file to save *DPI*: {``150``} | :class:`int` Resolution (dots per inch) if saved as a raster format *LineOptions*: {``{"color":["k","g","c","m","b","r"]}``} | :class:`dict` Plot options for the primary iterative plot; options are passed to :func:`matplotlib.pyplot.plot`, and lists are cycled through, so the default plots the first history in black, the second in green, etc. *MeanOptions*: {``{"ls": null}``} | :class:`dict` Plot options for the iterative mean value; most options are inherited from *LineOptions*, and setting *ls* to ``None`` as in the default creates a dotted line that is dashed for the iterations used to compute the mean *StDevOptions*: {``{"facecolor": "b", "alpha": 0.35, "ls": "none"}``} | :class:`dict` Plot options for standard deviation plots; options are passed to :func:`matplotlib.pyplot.fill_between` *ErrPlotOptions*: {``{"facecolor": "g", "alpha": 0.4, "ls": "none"}``} | :class:`dict` Plot options for iterative uncertainty window, passed to :func:`matplotlib.pyplot.fill_between` *DeltaOptions*: {``{"color": null}``} | :class:`dict` Plot options for fixed interval plot, passed to :func:`matplotlib.pyplot.plot` A typical application of this subfigure involves plotting multiple coefficients, and it is often advantageous to define a new subfigure class and allow most of the plotting options to "cascade." Consider the following example used to define plots of the force coefficients on left and right wings of some geometry. .. code-block:: javascript "Subfigures": { "WingCA": { "Type": "PlotCoeff", "Component": ["LeftWing", "RightWing"], "Coefficient": "CA", "LineOptions": {"color": ["k", "g"]}, "StandardDeviation": 1.0 }, "WingCN": { "Type": "WingCA", "Coefficient": "CN" }, "LeftWingCY": { "Type": "WingCA", "Coefficient": "CY", "Component": "LeftWing" }, "RightWingCY": { "Type": "LeftWingCY", "Component": "RightWing", "LineOptions": {"color": "g"} } The example creates four iterative history plots without having to repeat all the options for each subfigure. All four plots will use a *StandardDeviation* value of ``1.0``. Also note how multiple levels of recursion are allowed as shown by the last subfigure which uses ``"LeftWingCY" --> "WingCA" --> "PlotCoeff"`` for the *Type* specification.