This file is indexed.

/usr/share/doc/libqcustomplot-doc/html/index.html is in libqcustomplot-doc 1.3.2+dfsg1-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="author" content="Emanuel Eichhammer" />
<meta name="copyright" content="(C) 2013-2015 Emanuel Eichhammer" />
<title>QCustomPlot 1.3.1 Documentation</title>
<link href="qt.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top">
<a class="headerLink"  href="index.html">Main Page</a> &middot;
<a class="headerLink"  href="classoverview.html">Class Overview</a> &middot;
<a class="headerLink"  href="hierarchy.html">Hierarchy</a> &middot;
<a class="headerLink"  href="annotated.html">All Classes</a> &middot;
<a class="headerLink"  href="pages.html">Special Pages</a>
<!-- Generated by Doxygen 1.8.6 -->
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">QCustomPlot 1.3.1 Documentation </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><div class="image">
<img src="qcp-doc-logo.png" alt="qcp-doc-logo.png"/>
</div>
<p>Below is a brief overview of different aspects of data visualization with <a class="el" href="classQCustomPlot.html" title="The central class of the library. This is the QWidget which displays the plot and interacts with the ...">QCustomPlot</a>. If you are new to <a class="el" href="classQCustomPlot.html" title="The central class of the library. This is the QWidget which displays the plot and interacts with the ...">QCustomPlot</a> and just want to start using it, it's recommended to look at the tutorials and examples at</p>
<p><a href="http://www.qcustomplot.com/">http://www.qcustomplot.com/</a></p>
<p>This documentation is especially helpful as a reference, when you're familiar with the basic concept of how to use QCustomPlot and you wish to learn more about specific functionality. See the <a class="el" href="classoverview.html">class overview</a> for diagrams explaining the relationships between the most important classes of the <a class="el" href="classQCustomPlot.html" title="The central class of the library. This is the QWidget which displays the plot and interacts with the ...">QCustomPlot</a> library.</p>
<h1><a class="anchor" id="mainpage-plottables"></a>
Plottables</h1>
<p><em>Plottables</em> are classes that display any kind of data inside the <a class="el" href="classQCustomPlot.html" title="The central class of the library. This is the QWidget which displays the plot and interacts with the ...">QCustomPlot</a>. They all derive from <a class="el" href="classQCPAbstractPlottable.html" title="The abstract base class for all data representing objects in a plot. ">QCPAbstractPlottable</a>. For example, the <a class="el" href="classQCPGraph.html" title="A plottable representing a graph in a plot. ">QCPGraph</a> class is a plottable that displays a graph inside the plot with different line styles, scatter styles, filling etc.</p>
<p>Since plotting graphs is such a dominant use case, <a class="el" href="classQCustomPlot.html" title="The central class of the library. This is the QWidget which displays the plot and interacts with the ...">QCustomPlot</a> has a special interface for working with <a class="el" href="classQCPGraph.html" title="A plottable representing a graph in a plot. ">QCPGraph</a> plottables, that makes it very easy to handle them:<br/>
 A new graph can be created with <a class="el" href="classQCustomPlot.html#a6fb2873d35a8a8089842d81a70a54167">QCustomPlot::addGraph</a> and accessed with <a class="el" href="classQCustomPlot.html#a6d3ed93c2bf46ab7fa670d66be4cddaf">QCustomPlot::graph</a>.</p>
<p>For all other plottables, the normal plottable interface is used: First, an instance of the respective plottable is created and added to the <a class="el" href="classQCustomPlot.html" title="The central class of the library. This is the QWidget which displays the plot and interacts with the ...">QCustomPlot</a>, e.g. </p>
<div class="fragment"><div class="line">  <a class="code" href="classQCPCurve.html">QCPCurve</a> *newCurve = <span class="keyword">new</span> <a class="code" href="classQCPCurve.html">QCPCurve</a>(customPlot-&gt;xAxis, customPlot-&gt;yAxis);</div>
<div class="line">  customPlot-&gt;addPlottable(newCurve);</div>
</div><!-- fragment --><p>The properties of the newly created plottable can then be accessed via the <code>newCurve</code> pointer.</p>
<p>Plottables (including graphs) can be retrieved via <a class="el" href="classQCustomPlot.html#a32de81ff53e263e785b83b52ecd99d6f">QCustomPlot::plottable</a>. Since the return type of that function is the abstract base class of all plottables, <a class="el" href="classQCPAbstractPlottable.html" title="The abstract base class for all data representing objects in a plot. ">QCPAbstractPlottable</a>, you will probably want to <code>qobject_cast</code> the returned pointer to the respective plottable subclass. As usual, the cast returns zero if the plottable wasn't of that specific subclass.</p>
<p>All further interfacing with plottables (e.g how to set data) is specific to the plottable type. See the documentations of the subclasses: <a class="el" href="classQCPGraph.html" title="A plottable representing a graph in a plot. ">QCPGraph</a>, <a class="el" href="classQCPCurve.html" title="A plottable representing a parametric curve in a plot. ">QCPCurve</a>, <a class="el" href="classQCPBars.html" title="A plottable representing a bar chart in a plot. ">QCPBars</a>, <a class="el" href="classQCPStatisticalBox.html" title="A plottable representing a single statistical box in a plot. ">QCPStatisticalBox</a>, <a class="el" href="classQCPColorMap.html" title="A plottable representing a two-dimensional color map in a plot. ">QCPColorMap</a>, <a class="el" href="classQCPFinancial.html" title="A plottable representing a financial stock chart. ">QCPFinancial</a>.</p>
<h1><a class="anchor" id="mainpage-axes"></a>
Controlling the Axes</h1>
<p><a class="el" href="classQCustomPlot.html" title="The central class of the library. This is the QWidget which displays the plot and interacts with the ...">QCustomPlot</a> has four default axes: <em>xAxis</em> (bottom), <em>yAxis</em> (left), <em>xAxis2</em> (top), <em>yAxis2</em> (right).</p>
<p>Their range is handled by the simple <a class="el" href="classQCPRange.html" title="Represents the range an axis is encompassing. ">QCPRange</a> class. You can set the range with the <a class="el" href="classQCPAxis.html#aebdfea5d44c3a0ad2b4700cd4d25b641">QCPAxis::setRange</a> function. To change the axis scale type from a linear scale to a logarithmic scale, set <a class="el" href="classQCPAxis.html#adef29cae617af4f519f6c40d1a866ca6">QCPAxis::setScaleType</a> to <a class="el" href="classQCPAxis.html#a36d8e8658dbaa179bf2aeb973db2d6f0abf5b785ad976618816dc6f79b73216d4">QCPAxis::stLogarithmic</a>. The logarithm base can be set with <a class="el" href="classQCPAxis.html#a726186054be90487885a748aa1b42188">QCPAxis::setScaleLogBase</a>.</p>
<p>Each axis can be given an axis label (e.g. "Voltage (mV)") with <a class="el" href="classQCPAxis.html#a33bcc382c111c9f31bb0687352a2dea4">QCPAxis::setLabel</a>.</p>
<p>By default, an axis automatically creates and labels ticks in a sensible manner. See the following functions for tick manipulation:<br/>
 <a class="el" href="classQCPAxis.html#ac891409315bc379e3b1abdb162c1a011">QCPAxis::setTicks</a>, <a class="el" href="classQCPAxis.html#ae867c23d3a6a7bd4d09cc66c5d018f63">QCPAxis::setAutoTicks</a>, <a class="el" href="classQCPAxis.html#a7c7111cbeac9ec5fcb40f93a1ef51a0b">QCPAxis::setAutoTickCount</a>, <a class="el" href="classQCPAxis.html#a99fe77b034e06f5b723995beab96e741">QCPAxis::setAutoTickStep</a>, <a class="el" href="classQCPAxis.html#a04ba16e1f6f78d70f938519576ed32c8">QCPAxis::setTickLabels</a>, <a class="el" href="classQCPAxis.html#a54f24f5ce8feea25209388a863d7e448">QCPAxis::setTickLabelType</a>, <a class="el" href="classQCPAxis.html#a1bddd4413df8a576b7ad4b067fb33375">QCPAxis::setTickLabelRotation</a>, <a class="el" href="classQCPAxis.html#af727db0acc6492c4c774c0700e738205">QCPAxis::setTickStep</a>, <a class="el" href="classQCPAxis.html#a62ec40bebe3540e9c1479a8fd2be3b0d">QCPAxis::setTickLength</a>, ...</p>
<p>The distance of an axis backbone to the respective viewport/widget border is called its margin. Normally, the margins are calculated automatically to fit the axis and tick labels. To change this, set <a class="el" href="classQCPLayoutElement.html#accfda49994e3e6d51ed14504abf9d27d">QCPAxisRect::setAutoMargins</a> to exclude the respective margin sides, and set the margins manually with <a class="el" href="classQCPLayoutElement.html#a8f450b1f3f992ad576fce2c63d8b79cf">QCPAxisRect::setMargins</a>. The main axis rect can be accessed with <a class="el" href="classQCustomPlot.html#a4a37a1add5fe63060ac518cf0a4c4050">QCustomPlot::axisRect()</a>. A detailed explanation of the different margins/paddings/offset options is given in the <a class="el" href="classQCPAxisRect.html">QCPAxisRect</a> and <a class="el" href="classQCPAxis.html">QCPAxis</a> documentation.</p>
<h1><a class="anchor" id="mainpage-legend"></a>
Plot Legend</h1>
<p>Every <a class="el" href="classQCustomPlot.html" title="The central class of the library. This is the QWidget which displays the plot and interacts with the ...">QCustomPlot</a> has one <a class="el" href="classQCPLegend.html" title="Manages a legend inside a QCustomPlot. ">QCPLegend</a> (as <a class="el" href="classQCustomPlot.html#a4eadcd237dc6a09938b68b16877fa6af">QCustomPlot::legend</a>) by default. A legend is a small layout element inside the plot which lists the plottables with an icon of the plottable line/symbol and a name (<a class="el" href="classQCPAbstractPlottable.html#ab79c7ba76bc7fa89a4b3580e12149f1f">QCPAbstractPlottable::setName</a>). Plottables can be added and removed from the main legend via <a class="el" href="classQCPAbstractPlottable.html#a70f8cabfd808f7d5204b9f18c45c13f5">QCPAbstractPlottable::addToLegend</a> and <a class="el" href="classQCPAbstractPlottable.html#aa1f350e510326d012b9a9c9249736c83">QCPAbstractPlottable::removeFromLegend</a>. By default, adding a plottable to <a class="el" href="classQCustomPlot.html" title="The central class of the library. This is the QWidget which displays the plot and interacts with the ...">QCustomPlot</a> automatically adds it to the legend, too. This behaviour can be modified with the <a class="el" href="classQCustomPlot.html#ad8858410c2db47b7104040a3aa61c3fc">QCustomPlot::setAutoAddPlottableToLegend</a> property.</p>
<p>The <a class="el" href="classQCPLegend.html" title="Manages a legend inside a QCustomPlot. ">QCPLegend</a> provides an interface to access, add and remove legend items directly, too. See <a class="el" href="classQCPLegend.html#a454272d7094437beb3278a2294006da5">QCPLegend::item</a>, <a class="el" href="classQCPLegend.html#a5ee80cf83f65e3b6dd386942ee3cc1ee">QCPLegend::itemWithPlottable</a>, <a class="el" href="classQCPLegend.html#a3ab274de52d2951faea45a6d975e6b3f">QCPLegend::addItem</a>, <a class="el" href="classQCPLegend.html#ac91595c3eaa746fe6321d2eb952c63bb">QCPLegend::removeItem</a> for example.</p>
<p>Multiple legends are supported via the <a class="el" href="thelayoutsystem.html">layout system</a> (since a <a class="el" href="classQCPLegend.html" title="Manages a legend inside a QCustomPlot. ">QCPLegend</a> simply is a normal layout element).</p>
<h1><a class="anchor" id="mainpage-userinteraction"></a>
User Interaction</h1>
<p><a class="el" href="classQCustomPlot.html" title="The central class of the library. This is the QWidget which displays the plot and interacts with the ...">QCustomPlot</a> supports dragging axis ranges with the mouse (<a class="el" href="classQCPAxisRect.html#ae6aef2f7211ba6097c925dcd26008418">QCPAxisRect::setRangeDrag</a>), zooming axis ranges with the mouse wheel (<a class="el" href="classQCPAxisRect.html#a7960a9d222f1c31d558b064b60f86a31">QCPAxisRect::setRangeZoom</a>) and a complete selection mechanism.</p>
<p>The availability of these interactions is controlled with <a class="el" href="classQCustomPlot.html#a5ee1e2f6ae27419deca53e75907c27e5">QCustomPlot::setInteractions</a>. For details about the interaction system, see the documentation there.</p>
<p>Further, <a class="el" href="classQCustomPlot.html" title="The central class of the library. This is the QWidget which displays the plot and interacts with the ...">QCustomPlot</a> always emits corresponding signals, when objects are clicked or doubleClicked. See <a class="el" href="classQCustomPlot.html#a57e5efa8a854620e9bf62d31fc139f53">QCustomPlot::plottableClick</a>, <a class="el" href="classQCustomPlot.html#af2e6f1cea923dae437681d01ce7d0c31">QCustomPlot::plottableDoubleClick</a> and <a class="el" href="classQCustomPlot.html#abf635f8b56ab5c16d5de9f358543e82b">QCustomPlot::axisClick</a> for example.</p>
<h1><a class="anchor" id="mainpage-items"></a>
Items</h1>
<p>Apart from plottables there is another category of plot objects that are important: Items. The base class of all items is <a class="el" href="classQCPAbstractItem.html">QCPAbstractItem</a>. An item sets itself apart from plottables in that it's not necessarily bound to any axes. This means it may also be positioned in absolute pixel coordinates or placed at a relative position on an axis rect. Further, it usually doesn't represent data directly, but acts as decoration, emphasis, description etc.</p>
<p>Multiple items can be arranged in a parent-child-hierarchy allowing for dynamical behaviour. For example, you could place the head of an arrow at a fixed plot coordinate, so it always points to some important area in the plot. The tail of the arrow can be anchored to a text item which always resides in the top center of the axis rect, independent of where the user drags the axis ranges. This way the arrow stretches and turns so it always points from the label to the specified plot coordinate, without any further code necessary.</p>
<p>For a more detailed introduction, see the <a class="el" href="classQCPAbstractItem.html">QCPAbstractItem</a> documentation, and from there the documentations of the individual standard items, to find out how to use them.</p>
<h1><a class="anchor" id="mainpage-layoutelements"></a>
Layout Elements and Layouts</h1>
<p><a class="el" href="classQCustomPlot.html" title="The central class of the library. This is the QWidget which displays the plot and interacts with the ...">QCustomPlot</a> uses an internal layout system to provide dynamic sizing and positioning of objects like the axis rect(s), legends and the plot title. They are all based on <a class="el" href="classQCPLayoutElement.html">QCPLayoutElement</a> and are arranged by placing them inside a <a class="el" href="classQCPLayout.html">QCPLayout</a> subclass, like <a class="el" href="classQCPLayoutGrid.html">QCPLayoutGrid</a>.</p>
<p>See the page about <a class="el" href="thelayoutsystem.html">the layout system</a> for details.</p>
<h1><a class="anchor" id="mainpage-performanceimprovement"></a>
Performance Improvement</h1>
<p>See the page about <a class="el" href="performanceimprovement.html">plot performance improvement</a>.</p>
<h1><a class="anchor" id="mainpage-flags"></a>
Preprocessor Define Flags</h1>
<p><a class="el" href="classQCustomPlot.html" title="The central class of the library. This is the QWidget which displays the plot and interacts with the ...">QCustomPlot</a> understands some preprocessor defines that are useful for debugging and compilation: </p>
<dl>
<dt><code>QCUSTOMPLOT_COMPILE_LIBRARY</code> </dt>
<dd>Define this flag when compiling <a class="el" href="classQCustomPlot.html" title="The central class of the library. This is the QWidget which displays the plot and interacts with the ...">QCustomPlot</a> as a shared library (.so/.dll) </dd>
<dt><code>QCUSTOMPLOT_USE_LIBRARY</code> </dt>
<dd>Define this flag before including the header, when using <a class="el" href="classQCustomPlot.html" title="The central class of the library. This is the QWidget which displays the plot and interacts with the ...">QCustomPlot</a> as a shared library </dd>
<dt><code>QCUSTOMPLOT_CHECK_DATA</code> </dt>
<dd>If this flag is defined, the <a class="el" href="classQCustomPlot.html" title="The central class of the library. This is the QWidget which displays the plot and interacts with the ...">QCustomPlot</a> plottables will perform data validity checks on every redraw. They will give qDebug output when encountering <em>inf</em> or <em>nan</em> values (also if silent NaNs are used intentionally to create gaps in graphs). </dd>
</dl>
<h1><a class="anchor" id="mainpage-specialqtflags"></a>
Using QCustomPlot with special Qt flags</h1>
<p>See the page <a class="el" href="specialqtflags.html">Special Qt Flags</a> if your project uses <code>QT_NO_CAST_FROM_ASCII</code>, <code>QT_NO_CAST_TO_ASCII</code> or <code>QT_NO_KEYWORDS</code>. </p>
</div></div><!-- contents -->
</body>
</html>