Skip to content

Commit 831111e

Browse files
author
Ben Lerner
committed
feature: restore gridlines to composed charts
note: we do not support spacing of grid lines, or minor gridlines
1 parent 96cb93f commit 831111e

File tree

2 files changed

+24
-9
lines changed

2 files changed

+24
-9
lines changed

src/arr/trove/charts.arr

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -511,8 +511,12 @@ show-minor-grid-lines-method = method(self, is-showing :: Boolean):
511511
self.constr()(self.obj.{show-minor-grid-lines: is-showing})
512512
end
513513

514+
show-grid-lines-method = method(self, is-showing :: Boolean):
515+
self.constr()(self.obj.{show-grid-lines: is-showing})
516+
end
517+
514518
gridlines-color-method = method(self, color :: I.Color):
515-
self.constr()(self.obj.{gridlineColor: some(color)})
519+
self.constr()(self.obj.{show-grid-lines: true, gridlineColor: some(color)})
516520
end
517521

518522
minor-gridlines-color-method = method(self, color :: I.Color):
@@ -1459,6 +1463,8 @@ type PlotChartWindowObject = {
14591463
borderSize :: Number,
14601464
borderColor :: Option<I.Color>,
14611465
render :: ( -> IM.Image),
1466+
show-grid-lines :: Boolean,
1467+
show-minor-grid-lines :: Boolean,
14621468
gridlineColor :: Option<I.Color>,
14631469
gridlineMinspacing :: Option<Number>,
14641470
minorGridlineColor :: Option<I.Color>,
@@ -1476,6 +1482,7 @@ type PlotChartWindowObject = {
14761482
default-plot-chart-window-object :: PlotChartWindowObject = default-chart-window-object.{
14771483
x-axis: '',
14781484
y-axis: '',
1485+
show-grid-lines: true,
14791486
show-minor-grid-lines: false,
14801487
x-min: none,
14811488
x-max: none,
@@ -1722,11 +1729,12 @@ data ChartWindow:
17221729
y-max: y-max-method,
17231730
| plot-chart-window(obj :: PlotChartWindowObject) with:
17241731
constr: {(): plot-chart-window},
1725-
show-minor-gridlines: show-minor-grid-lines-method,
1732+
show-gridlines: show-grid-lines-method,
17261733
gridlines-color: gridlines-color-method,
1727-
gridlines-minspacing: gridlines-min-spacing-method,
1728-
minor-gridlines-color: minor-gridlines-color-method,
1729-
minor-gridlines-minspacing: minor-gridlines-min-spacing-method,
1734+
# gridlines-minspacing: gridlines-min-spacing-method,
1735+
# show-minor-gridlines: show-minor-grid-lines-method,
1736+
# minor-gridlines-color: minor-gridlines-color-method,
1737+
# minor-gridlines-minspacing: minor-gridlines-min-spacing-method,
17301738
x-axis: x-axis-method,
17311739
y-axis: y-axis-method,
17321740
x-min: x-min-method,

src/js/trove/charts-lib.js

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -174,14 +174,15 @@
174174
const hAxis = options.hAxis ??= {};
175175
const vAxis = options.vAxis ??= {};
176176

177-
const gridlineColor = getColorOrDefault(globalOptions['gridlineColor'], "#aaa");
177+
const showGridlines = isTrue(globalOptions['show-grid-lines']);
178+
const gridlineColor = getColorOrDefault(globalOptions['gridlineColor'], undefined);
178179

179-
const minorGridlineColor = getColorOrDefault(globalOptions['minorGridlineColor'], "#ddd");
180+
const minorGridlineColor = getColorOrDefault(globalOptions['minorGridlineColor'], undefined);
180181

181182
const minorGridlineMinspacing = toFixnum(globalOptions['minorGridlineMinspacing'])
182183

183-
hAxis.gridlines = {color: gridlineColor};
184-
vAxis.gridlines = {color: gridlineColor};
184+
hAxis.gridlines = {show: showGridlines, color: gridlineColor};
185+
vAxis.gridlines = {show: showGridlines, color: gridlineColor};
185186

186187
cases(RUNTIME.ffi.isOption, 'Option', globalOptions['gridlineMinspacing'], {
187188
none: function () {
@@ -2684,6 +2685,9 @@
26842685
// NOTE: For the axes, we're going to want to put the bar lines at the zeros
26852686
// of the domains, rather than the edges of the chart
26862687
const axes = [
2688+
{ orient: 'bottom', scale: `xscale`, zindex: 0,
2689+
grid: gridlines.hAxis.gridlines.show, gridColor: gridlines.hAxis.gridlines.color,
2690+
domain: false, tickOpacity: 0, labelOpacity: 0 },
26872691
{ orient: 'bottom', scale: `xscale`, zindex: 1, title: xAxisLabel,
26882692
domain: false, tickOpacity: 0, labelOpacity: 0 },
26892693
{ orient: 'bottom', scale: `xscale`, zindex: 1,
@@ -2692,6 +2696,9 @@
26922696
signal: `clamp(0, domain('yscale')[0], domain('yscale')[1])`,
26932697
offset: { signal: 'height', mult: -1 } }
26942698
},
2699+
{ orient: 'left', scale: `yscale`, zindex: 0,
2700+
grid: gridlines.vAxis.gridlines.show, gridColor: gridlines.vAxis.gridlines.color,
2701+
domain: false, tickOpacity: 0, labelOpacity: 0 },
26952702
{ orient: 'left', scale: `yscale`, zindex: 1, title: yAxisLabel,
26962703
domain: false, tickOpacity: 0, labelOpacity: 0 },
26972704
{ orient: 'left', scale: `yscale`, zindex: 1,

0 commit comments

Comments
 (0)