QWT API (中文) 7.0.1
Qt绘图库 - 中文API文档
载入中...
搜索中...
未找到
qwt_plot_boxchart.h
1/******************************************************************************
2 * Qwt Widget Library
3 * Copyright (C) 1997 Josef Wilgen
4 * Copyright (C) 2002 Uwe Rathmann
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the Qwt License, Version 1.0
8 *
9 * Modified by ChenZongYan in 2024 <czy.t@163.com>
10 *****************************************************************************/
11
12#ifndef QWT_PLOT_BOXCHART_H
13#define QWT_PLOT_BOXCHART_H
14
15#include "qwt_global.h"
16#include "qwt_plot_seriesitem.h"
17#include "qwt_series_store.h"
18#include "qwt_samples.h"
19
20class QwtSymbol;
21template<typename T> class QwtSeriesData;
22
48class QWT_EXPORT QwtPlotBoxChart
49 : public QwtPlotSeriesItem
50 , public QwtSeriesStore<QwtBoxSample>
51{
52public:
62 {
65
68
71
73 Notch
74 };
75
85 {
88
91
93 MinMaxLine
94 };
95
105 {
107 ClipBoxes = 0x01,
108
110 ClipOutliers = 0x02,
111
113 ImageBuffer = 0x04
114 };
115
116 Q_DECLARE_FLAGS(PaintAttributes, PaintAttribute)
117
118
126 explicit QwtPlotBoxChart(const QString& title = QString());
127
136 explicit QwtPlotBoxChart(const QwtText& title);
137
146 virtual ~QwtPlotBoxChart();
147
158 virtual int rtti() const override;
159
160 // Set paint attribute
161 void setPaintAttribute(PaintAttribute, bool on = true);
162
163 // Test paint attribute
164 bool testPaintAttribute(PaintAttribute) const;
165
166 // Set box samples
167 void setSamples(const QVector<QwtBoxSample>&);
168 void setSamples(QwtSeriesData<QwtBoxSample>*);
169
170 // Set outlier samples (optional)
171 void setOutliers(const QVector<QwtBoxOutlierSample>&);
172 void setOutliers(QwtSeriesData<QwtBoxOutlierSample>*);
173
174 // Get outlier data
175 const QwtSeriesData<QwtBoxOutlierSample>* outlierData() const;
176
177 // Set box style
178 void setBoxStyle(BoxStyle);
179 BoxStyle boxStyle() const;
180
181 // Set whisker style
182 void setWhiskerStyle(WhiskerStyle);
183 WhiskerStyle whiskerStyle() const;
184
185 // Set orientation (vertical: x-position, horizontal: y-position)
186 void setOrientation(Qt::Orientation);
187 Qt::Orientation orientation() const;
188
189 // Set box width in scale coordinates
190 void setBoxExtent(double extent);
191 double boxExtent() const;
192
193 // Set minimum box width in pixels
194 void setMinBoxWidth(double pixels);
195 double minBoxWidth() const;
196
197 // Set maximum box width in pixels (negative = unlimited)
198 void setMaxBoxWidth(double pixels);
199 double maxBoxWidth() const;
200
201 // Set pen for box outline and whiskers
202 void setPen(const QColor&, qreal width = 0.0, Qt::PenStyle = Qt::SolidLine);
203 void setPen(const QPen&);
204 const QPen& pen() const;
205
206 // Set brush for box body fill
207 void setBrush(const QBrush&);
208 const QBrush& brush() const;
209
210 // Set pen for median line
211 void setMedianPen(const QPen&);
212 QPen medianPen() const;
213
214 // Set symbol for outliers
215 void setOutlierSymbol(const QwtSymbol*);
216 const QwtSymbol* outlierSymbol() const;
217
218 // Set symbol for mean marker
219 void setMeanSymbol(const QwtSymbol*);
220 const QwtSymbol* meanSymbol() const;
221
222 // Show/hide median line
223 void setMedianVisible(bool);
224 bool isMedianVisible() const;
225
226 // Show/hide mean marker
227 void setMeanVisible(bool);
228 bool isMeanVisible() const;
229
230 // Set outlier jitter width (for overlapping outliers)
231 void setOutlierJitter(double jitterWidth);
232 double outlierJitter() const;
233
234 // Draw the series
235 virtual void drawSeries(QPainter*,
236 const QwtScaleMap& xMap, const QwtScaleMap& yMap,
237 const QRectF& canvasRect, int from, int to) const override;
238
239 // Get bounding rectangle
240 virtual QRectF boundingRect() const override;
241
242 // Get legend icon
243 virtual QwtGraphic legendIcon(int index, const QSizeF&) const override;
244
245protected:
247 void init();
248
250 virtual double scaledBoxWidth(
251 const QwtScaleMap& posMap,
252 const QwtScaleMap& valueMap,
253 const QRectF& canvasRect) const;
254
256 virtual void drawBox(QPainter*, const QwtBoxSample&,
257 Qt::Orientation, double boxWidth, double posPixel,
258 const QwtScaleMap& valueMap) const;
259
261 virtual void drawWhiskers(QPainter*, const QwtBoxSample&,
262 Qt::Orientation, double boxWidth, double posPixel,
263 const QwtScaleMap& valueMap) const;
264
266 virtual void drawMedian(QPainter*, const QwtBoxSample&,
267 Qt::Orientation, double boxWidth, double posPixel,
268 const QwtScaleMap& valueMap) const;
269
271 virtual void drawOutliers(QPainter*,
272 const QwtScaleMap& posMap, const QwtScaleMap& valueMap,
273 const QRectF& canvasRect, int from, int to) const;
274
276 virtual void drawOutlierSymbol(QPainter*, double posPixel, double valuePixel,
277 const QwtSymbol& symbol) const;
278
279private:
280 class PrivateData;
281 PrivateData* m_data;
282
284};
285
286Q_DECLARE_OPERATORS_FOR_FLAGS(QwtPlotBoxChart::PaintAttributes)
287
288#endif // QWT_PLOT_BOXCHART_H
Definition qwt_clipper.h:40
箱线图(boxplot)样本
Definition qwt_samples.h:534
可缩放图形的绘制设备
Definition qwt_graphic.h:128
箱线图(boxplot)绘图项
Definition qwt_plot_boxchart.h:51
WhiskerStyle
须须显示样式
Definition qwt_plot_boxchart.h:85
@ NoWhiskers
No whisker lines drawn
Definition qwt_plot_boxchart.h:87
@ StandardWhisker
Traditional T-bar whiskers with horizontal caps (default)
Definition qwt_plot_boxchart.h:90
PaintAttribute
性能优化的绘制属性
Definition qwt_plot_boxchart.h:105
BoxStyle
箱体显示样式
Definition qwt_plot_boxchart.h:62
@ Diamond
Diamond shape connecting extremes
Definition qwt_plot_boxchart.h:70
@ Rect
Traditional rectangular box (Q1-Q3)
Definition qwt_plot_boxchart.h:67
@ NoBox
No box body, only whiskers and outliers
Definition qwt_plot_boxchart.h:64
virtual QwtGraphic legendIcon(int index, const QSizeF &) const
Return a legend icon
Definition qwt_plot_item.cpp:621
virtual int rtti() const
Runtime type information
Definition qwt_plot_item.cpp:215
表示一系列样本的绘图项的基类
Definition qwt_plot_seriesitem.h:53
Qt::Orientation orientation() const
获取绘图项的方向
Definition qwt_plot_seriesitem.cpp:134
void setOrientation(Qt::Orientation)
设置绘图项的方向
Definition qwt_plot_seriesitem.cpp:110
virtual QRectF boundingRect() const override
获取边界矩形
Definition qwt_plot_seriesitem.cpp:174
virtual void drawSeries(QPainter *painter, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, int from, int to) const =0
绘制样本的子集
刻度映射
Definition qwt_scale_map.h:52
遍历样本的抽象接口
Definition qwt_series_data.h:72
存储 QwtSeriesData 对象的类
Definition qwt_series_store.h:109
用于绘制符号的类
Definition qwt_symbol.h:56
表示文本的类
Definition qwt_text.h:93