pissang commented on a change in pull request #11479: fix(time): bar bandWidth
with time axis #11145
URL:
https://github.com/apache/incubator-echarts/pull/11479#discussion_r338903189
##########
File path: src/layout/barGrid.js
##########
@@ -87,16 +87,91 @@ export function prepareLayoutBarSeries(seriesType,
ecModel) {
return seriesModels;
}
+
+/**
+ * Map from axis.index to min gap of two adjacent time values.
+ * For a single time axis, return value is in the form like
+ * [[1000000]].
+ * The value of 1000000 is in milliseconds.
+ */
+function getTimeAxesMinGaps(barSeries) {
+ /**
+ * Map from axis.index to time values.
+ * For a single time axis, axisValues is in the form like
+ * [[1495555200000, 1495641600000, 1495728000000]].
+ * Items in axisValues[x], e.g. 1495555200000, are time values of all
+ * series.
+ */
+ var axisValues = [];
+ zrUtil.each(barSeries, function (seriesModel) {
+ var cartesian = seriesModel.coordinateSystem;
+ var baseAxis = cartesian.getBaseAxis();
+ if (baseAxis.type !== 'time') {
+ return;
+ }
+
+ var data = seriesModel.getData();
+ var axisId = baseAxis.index;
+ for (var i = 0, cnt = data.count(); i < cnt; ++i) {
+ var value = data.get(baseAxis.dim, i);
+ if (!axisValues[axisId]) {
+ // No time value for the time axis
+ axisValues[axisId] = [value];
+ }
+ else if (axisValues[axisId].indexOf(value) < 0) {
Review comment:
It will increase the iteration complexity to O(n2). Which may have
performance issue on large data.
Can we simply push the data. And put the duplication check when iterating
the sorted data. In this way we only need to check with the previous array item.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]