Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[XY] Adapt for xyVis. #127712

Closed
21 tasks
VladLasitsa opened this issue Mar 15, 2022 · 4 comments
Closed
21 tasks

[XY] Adapt for xyVis. #127712

VladLasitsa opened this issue Mar 15, 2022 · 4 comments
Labels
Team:Presentation Presentation Team for Dashboard, Input Controls, and Canvas Team:Visualizations Visualization editors, elastic-charts and infrastructure

Comments

@VladLasitsa
Copy link
Contributor

VladLasitsa commented Mar 15, 2022

Comparing vis_xy from vis_types and lens_xy, there are such differences in the API and in the functionality:

VisEditors XY     Lens XY  
Field Type, single/multi Default Field Type, single/multi
chartType string (area/line/histogram)   layers.seriesType string (bar/line/area/bar_stacked/area_stacked/bar_percentage_stacked/area_percentage_stacked)
addTimeMarker boolean   --
orderBucketsBySum boolean   --
addTooltip boolean   --
detailedTooltip boolean   --
thresholdLine 'threshold_line'   layers 'lens_xy_referenceLine_layer'
thresholdLine.show boolean   --
thresholdLine.value number, null   layers.accessors string
thresholdLine.value number, null   layers.accessors string
thresholdLine.width number, null   layers.yConfig.lineWidth number
thresholdLine.style string (full, dashed or dot-dashed)   layers.yConfig.lineStyle string (full, dashed or dot-dashed)
thresholdLine.color string   layers.yConfig.color string
radiusRatio number   --
fittingFunction string   fittingFunction string
fillOpacity number   fillOpacity number
ariaLabel string   ariaLabel string
  legend 'lens_xy_legendConfig'
addLegend boolean   legend.isVisible boolean
legendPosition string (top, bottom, left, right)   legend.position string (top, bottom, left, right)
maxLegendLines number   legend.maxLines number
truncateLegend number   legend.shouldTruncate boolean
categoryAxes 'category_axis', multi   --
categoryAxes.id string   --
categoryAxes.show boolean false layers.hide boolean
categoryAxes.position string   --
categoryAxes.type string (category/value)   --
categoryAxes.title string   xTitle string
categoryAxes.scale 'vis_scale'  
categoryAxes.scale.boundsMargin number, string   --
categoryAxes.scale.defaultYExtents boolean  
categoryAxes.scale.setYExtents boolean  
categoryAxes.scale.max number  
categoryAxes.scale.min number  
categoryAxes.scale.type string (linear, log or square root)   layers.xScaleType string (for x axis: 'ordinal', 'linear', 'time')
categoryAxes.scale.mode string (normal, percentage, wiggle or silhouette)   --
categoryAxes.labels 'label'   --
categoryAxes.labels.color string   --
categoryAxes.labels.filter boolean   --
categoryAxes.labels.rotate number   labelsOrientation.x number (0, -90, -45)
categoryAxes.labels.show boolean   tickLabelsVisibilitySettings.x boolean
??categoryAxes.labels.overwriteColor boolean   --
categoryAxes.labels.truncate number, null   --
valueAxes 'value_axis', multi   --
valueAxes.name string   --
valueAxes.axisParams 'category_axis'   --
valueAxes.axisParams.id string   --
valueAxes.axisParams.show boolean false layers.hide boolean
valueAxes.axisParams.position string   --
valueAxes.axisParams.type string (category/value)   --
valueAxes.axisParams.title string   yTitle string
valueAxes.axisParams.scale 'vis_scale'  
valueAxes.axisParams.scale.boundsMargin number, string   --
valueAxes.axisParams.scale.defaultYExtents boolean   yLeftExtent/yRightExtent.mode string (full, databounds, custom) - "databounds" option is equivalent
valueAxes.axisParams.scale.setYExtents boolean   yLeftExtent/yRightExtent.mode string (full, databounds, custom) - "custom" option is equivalent
valueAxes.axisParams.scale.max number   yLeftExtent/yRightExtent.upperBound number
valueAxes.axisParams.scale.min number   yLeftExtent/yRightExtent.lowerBound number
valueAxes.axisParams.scale.type string (linear, log or square root)   layers.yScaleType string (for x axis: 'log', 'linear', ''sqrt', time')
valueAxes.axisParams.scale.mode string (normal, percentage, wiggle or silhouette)   --
valueAxes.axisParams.labels 'label'   --
valueAxes.axisParams.labels.color string   --
valueAxes.axisParams.labels.filter boolean   --
valueAxes.axisParams.labels.rotate number   labelsOrientation.yLeft/yRight number (0, -90, -45)
valueAxes.axisParams.labels.show boolean   tickLabelsVisibilitySettings.yLeft/yRight boolean
valueAxes.axisParams.labels.overwriteColor boolean   --
valueAxes.axisParams.labels.truncate number, null   --
gridCategoryLines boolean   gridlinesVisibilitySettings 'lens_xy_gridlinesConfig'
gridValueAxis string   gridlinesVisibilitySettings 'lens_xy_gridlinesConfig'
isVislibVis boolean   --
times 'time_marker'   --
palette string   layers.palette 'palette'
seriesParams 'series_param', multi  
seriesParams.id string   layers.layerId string
seriesParams.label string  
seriesParams.drawLinesBetweenPoints boolean   --
seriesParams.interpolate string (linear, cardinal or step-after)   curveType string (LINEAR, CURVE_MONOTONE_X)
seriesParams.show boolean   --
seriesParams.lineWidth number   --
seriesParams.showCircles boolean   --
seriesParams.circlesRadius number   --
seriesParams.valueAxis string   --
seriesParams.mode string (stacked or percentage)   layers.seriesType string ('bar', 'bar_horizontal', 'line', 'area', 'bar_stacked', 'bar_percentage_stacked', 'bar_horizontal_stacked', 'bar_horizontal_percentage_stacked', 'area_stacked', 'area_percentage_stacked')
seriesParams.type string (line, area or histogram)   layers.seriesType/layers.isHistogram string ('bar', 'bar_horizontal', 'line', 'area', 'bar_stacked', 'bar_percentage_stacked', 'bar_horizontal_stacked', 'bar_horizontal_percentage_stacked', 'area_stacked', 'area_percentage_stacked') / boolean
xDimension 'xy_dimension', 'null'   layers.xAccessor string
yDimension 'xy_dimension', multi   layers.accessors string
zDimension 'xy_dimension', multi   --
widthDimension 'xy_dimension', multi   --
seriesDimension 'xy_dimension', multi   --
splitRowDimension 'xy_dimension', multi   --
splitColumnDimension 'xy_dimension', multi   layers.splitAccessor string
labels 'labels'  
labels.show boolean   valueLabels string ('hide', 'inside')

Adaptation notes

Globally

  • Add full support of visdimension at fields: splitAccessor, accessors, xAccessor.
  • Add missing features related to this: splitRowDimension, seriesDimension, zDimension.
    • splitRowDimension - allow split by row (in xy_vis - Split chart)
    • seriesDimension - allow split series
    • zDimension - allow to provide field name of mark size metric on Datum. Only used with line/area series
  • Add missing features for UI configuring charts: (seriesParams args: lineWidth, circlesRadius)
  • Add possibility to show circles on charts: (seriesParams arg: showCircles)
  • Add possibility to show circles without line between them: (seriesParams arg: drawLinesBetweenPoints)
  • Add feature related to show time marker (addTimeMarker arg)
  • Add support of orderBucketsBySum (allow to order ordinal x values by descending)
  • Add support to show/hide tooltips (addTooltip arg)
  • Add supporting of detailed tooltip (detailedTooltip arg)
  • Add full functionality related to axes (categoryAxes are x - axes, valueAxes are y-axes):
    • Add support of scaling mode for axes. (categoryAxes.scale.mode/valueAxes.axisParams.scale.mode arg)
    • Add possibility to customize axis position (categoryAxes.position/valueAxes.axisParams.position arg)
    • Add possibility to configure padding for computed domain as positive number. (categoryAxes.scale.boundsMargin/valueAxes.axisParams.scale.boundsMargin arg)
    • Add possibility to configure color of labels on axes. (categoryAxes.labels.color/valueAxes.axisParams.labels.color arg)
    • Add possibility to hides overlapping labels and duplicates on axis. (categoryAxes.labels.filter/valueAxes.axisParams.labels.filter arg)
    • Add possibility to number of symbols before truncating label on axis. (categoryAxes.labels.truncate/valueAxes.axisParams.labels.truncate arg)
  • Add support to define size ratio for zDimension. (radiusRatio arg)
  • Change palette type from string to palette.
@botelastic botelastic bot added the needs-team Issues missing a team label label Mar 15, 2022
@VladLasitsa VladLasitsa added the Team:Visualizations Visualization editors, elastic-charts and infrastructure label Mar 15, 2022
@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-vis-editors @elastic/kibana-vis-editors-external (Team:VisEditors)

@botelastic botelastic bot removed the needs-team Issues missing a team label label Mar 15, 2022
@VladLasitsa VladLasitsa changed the title [XY] Adapt for vis_xy. [XY] Adapt for xy_vis. Mar 15, 2022
@Kuznietsov Kuznietsov changed the title [XY] Adapt for xy_vis. [XY] Adapt for xyVis. Mar 15, 2022
@flash1293
Copy link
Contributor

This list looks good to me - let me know whether I misunderstand something, but it looks like it's only about adding additional features / renaming parameters, there are no real "conflicts", correct?

@Kuznietsov Kuznietsov added the Team:Presentation Presentation Team for Dashboard, Input Controls, and Canvas label Mar 18, 2022
@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-presentation (Team:Presentation)

@Kuznietsov
Copy link
Contributor

@flash1293, during my digging into the code of xy from vis_editors I've found a lot of places, where it is relying on the aggType, as it has been before. That was not hidden from me, but forgotten. It seems to me, that during the integration it will be shown a lot of underwater stones. I can't say, that there are no conflicts. There are a lot of places, where the visualization will work differently and we'll need to take care of each case separately.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Team:Presentation Presentation Team for Dashboard, Input Controls, and Canvas Team:Visualizations Visualization editors, elastic-charts and infrastructure
Projects
None yet
Development

No branches or pull requests

4 participants