mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
statistics: add a sort mode for categorical bar charts
This was a user request: Sort bar charts by height of the bars. Obviously, this can only work for categorical charts, not for histograms. The UI is a break from the old concept: the sorting is chosen based on the chart, whereas for the rest of the features, the viable charts are presented based on the binning, etc. I found it confusing to have the possible charts be selected based on sorting. I.e. if a non-bin sort mode is selected, the histogram charts disappear. On the flip side, this would be more consistent. We can change it later. For value-based bar charts, there are three sort modes: by bin, by count (i.e. number of dives in that bar) and by value (i.e. length of the bar). This hopefully satisfies all needs. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
f76752ee03
commit
1e5191e33e
10 changed files with 137 additions and 21 deletions
|
@ -36,6 +36,7 @@ class RootNode; // Internal implementation detail
|
|||
enum class ChartSubType : int;
|
||||
enum class ChartZValue : int;
|
||||
enum class StatsOperation : int;
|
||||
enum class ChartSortMode : int;
|
||||
|
||||
class StatsView : public QQuickItem {
|
||||
Q_OBJECT
|
||||
|
@ -81,17 +82,17 @@ private:
|
|||
void reset(); // clears all series and axes
|
||||
void setAxes(StatsAxis *x, StatsAxis *y);
|
||||
void plotBarChart(const std::vector<dive *> &dives,
|
||||
ChartSubType subType,
|
||||
ChartSubType subType, ChartSortMode sortMode,
|
||||
const StatsVariable *categoryVariable, const StatsBinner *categoryBinner,
|
||||
const StatsVariable *valueVariable, const StatsBinner *valueBinner);
|
||||
void plotValueChart(const std::vector<dive *> &dives,
|
||||
ChartSubType subType,
|
||||
ChartSubType subType, ChartSortMode sortMode,
|
||||
const StatsVariable *categoryVariable, const StatsBinner *categoryBinner,
|
||||
const StatsVariable *valueVariable, StatsOperation valueAxisOperation);
|
||||
void plotDiscreteCountChart(const std::vector<dive *> &dives,
|
||||
ChartSubType subType,
|
||||
ChartSubType subType, ChartSortMode sortMode,
|
||||
const StatsVariable *categoryVariable, const StatsBinner *categoryBinner);
|
||||
void plotPieChart(const std::vector<dive *> &dives,
|
||||
void plotPieChart(const std::vector<dive *> &dives, ChartSortMode sortMode,
|
||||
const StatsVariable *categoryVariable, const StatsBinner *categoryBinner);
|
||||
void plotDiscreteBoxChart(const std::vector<dive *> &dives,
|
||||
const StatsVariable *categoryVariable, const StatsBinner *categoryBinner, const StatsVariable *valueVariable);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue