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

Clone y/y2-axis domain from the other y/y2-axis if no data is bound to one of them #1231

Closed
michkami opened this issue Feb 5, 2020 · 2 comments

Comments

@michkami
Copy link
Collaborator

michkami commented Feb 5, 2020

Description

If there is no data bound to y2-axis and y2-axis is shown, it sets the domain of y2-axis to [0, 1].
The same happens if no data is bound to y-axis.
All columns bound to y-axis:
1  All data bound to y

For setting the domain of y2-axis you have to bind atleast one data column to y2-axis.
'data3' bound to y2-axis:
2  One data bound to y2

For the case of showing the both y- and y2-axis and not binding data to one of them, it would be great if it would clone the domain of the opposite y-axis per default.

It would look like this:
All columns bound to y-axis:
3  All data bound to y

'data3' bound to y2-axis:
4  One data bound to y2

It can be achieved by changing following code in domain.js:

97	if (yTargets.length === 0) { // use current domain if target of axisId is none
98		return $$[axisId].domain();
99	}

change to

97	if (yTargets.length === 0) { // use current domain if target of axisId is none
98		return axisId === "y2" ? $$.y.domain() : $$.getYDomain(targets, "y2", false);
99	}

Is there anything against implementing this in billboard?

Steps to check or reproduce

  1. Open CategoryAxis Example
  2. Use the code below.

Example code:

var chart = bb.generate({
  data: {
    columns: [
		['data1', -1000, -750, -500, -250, 0, 250, 500, 750, 1000],
		['data2', -250, 0, 250, 0, -250, 0, 250, 0, -250],
		['data3', 100, 75, 50, 25, 0, -25, -50, -75, -100]
    ],
	axes: {
		data1: 'y',
		data2: 'y',
		data3: 'y'
	}
  },
  axis: {
    x: {
      type: "category",
      categories: [
        "cat1",
        "cat2",
        "cat3",
        "cat4",
        "cat5",
        "cat6",
        "cat7",
        "cat8",
        "cat9"
      ]
    },
	y2: {
		show: true
	}
  },
  bindto: "#categoryAxis"
});
@netil
Copy link
Member

netil commented Feb 6, 2020

Hi @michkami, thanks for the suggestion and it sounds reasonable.
Is changing default behavior which will affect those are using as is, but there's no meaning showing y2 Axis without correlating with the data bound.

Can you send PR for this? And don't forget adding changes to API doc.

@netil netil closed this as completed in 96ac5c7 Feb 7, 2020
netil pushed a commit that referenced this issue Feb 7, 2020
# [1.12.0-next.2](1.12.0-next.1...1.12.0-next.2) (2020-02-07)

### Features

* **axis:** Clone y/y2-axis domain if no data is bound to one of them ([96ac5c7](96ac5c7)), closes [#1231](#1231) [#1233](#1233)
* **axis:** Intent to ship y Axes stepSize ([429c6ec](429c6ec)), closes [#1098](#1098)
* **tooltip:** Enhancement on callback options ([30a7718](30a7718)), closes [#1216](#1216)
@netil netil added the feature label Mar 11, 2020
netil pushed a commit that referenced this issue Mar 20, 2020
# [1.12.0](1.11.1...1.12.0) (2020-03-20)

### Bug Fixes

* **arc:** Fix handling spaced data name ([4824a47](4824a47)), closes [#1168](#1168)
* **arc:** Fix overwriting gauge_max in MultiArcGauge with totalSum ([8b2c28e](8b2c28e)), closes [#1259](#1259) [#1260](#1260)
* **axis:** Correct y Axis tick padding ([145b960](145b960)), closes [#1251](#1251)
* **axis:** Fix adding duplicated <title> element ([8d45075](8d45075)), closes [#1271](#1271)
* **axis:** Fix axis label text position ([68b6b86](68b6b86)), closes [#1270](#1270)
* **axis:** Fix axis tick rotate translate ([1bc3f20](1bc3f20)), closes [#1250](#1250) [#1278](#1278)
* **axis:** Fix for multi axes data bound  ([3f8afba](3f8afba)), closes [/github.com//pull/1233#issuecomment-595675546](https://github.com//github.com/naver/billboard.js/pull/1233/issues/issuecomment-595675546)
* **axis:** Fix text being left behind if getBBox fails ([648aa41](648aa41)), closes [#1283](#1283) [#1284](#1284)
* **bar:** Bar's width resize according the zoom scale ([93184a2](93184a2)), closes [#1185](#1185)
* **callbacks:** Fix triggering in lazy rendering ([3e73fdf](3e73fdf)), closes [#1254](#1254)
* **core:** Fix onrendered firing time ([8b8665c](8b8665c)), closes [#1194](#1194)
* **gauge:** fixed wrong ratio calculation in 'gauge.type = "single"' ([9020246](9020246)), closes [#1205](#1205)
* **grid:** Fix focus grid to be maintained on resize  ([01ba388](01ba388)), closes [#1239](#1239)
* **interaction:** Fix null data point interaction ([901da84](901da84)), closes [#1199](#1199)
* **line:** Fix nullish data rendering with regions ([d0ca937](d0ca937)), closes [#1172](#1172)
* **radar:** Correct text label not showing ([9109fd5](9109fd5)), closes [#1241](#1241)
* **tooltip:** Auto pos adjustion for tooltip ([c54f731](c54f731)), closes [#1243](#1243) [#1239](#1239)
* **tooltip:** Fix tooltip position on overlapping data point ([8dba213](8dba213)), closes [#1267](#1267)
* **tooltip:** Revert on pointer-events css prop ([c74c27a](c74c27a)), closes [#1124](#1124) [#1155](#1155)
* **tooltip,interaction:** Correct tooltip behaves for touch environment ([7090fa9](7090fa9)), closes [#1253](#1253)

### Features

* **axis:** Autorotate x axis tick texts on type "category" and "timeseries" ([8c51d02](8c51d02)), closes [#1236](#1236) [#1250](#1250)
* **axis:** Clone y/y2-axis domain if no data is bound to one of them ([96ac5c7](96ac5c7)), closes [#1231](#1231) [#1233](#1233)
* **axis:** Intent to ship axis.x.min/max.fit ([1650955](1650955)), closes [#7](#7)
* **axis:** Intent to ship axis.y2.tick.rotate ([98992f3](98992f3)), closes [#1157](#1157) [#1158](#1158)
* **axis:** Intent to ship y Axes stepSize ([429c6ec](429c6ec)), closes [#1098](#1098)
* **gauge:** more than one arc are possible for gauges ([7a80e02](7a80e02)), closes [#787](#787) [#1071](#1071) [#1163](#1163)
* **grid:** Intent to ship grid.focus.y ([13d65d1](13d65d1)), closes [#1154](#1154)
* **line:** Intent to ship bubble/line/scatter zerobased ([e45fb33](e45fb33)), closes [#1149](#1149) [#1150](#1150)
* **options:** Intent to ship Arc's expand.rate ([7d6f32f](7d6f32f)), closes [#1189](#1189)
* **plugin:** Intent to ship bubblecompare plugin ([49704e0](49704e0)), closes [#1153](#1153)
* **tooltip:** Enhancement on callback options ([30a7718](30a7718)), closes [#1216](#1216)
* **tooltip:** Intent to ship tooltip.position.unit ([ac078a7](ac078a7)), closes [#1239](#1239)
* **zoom:** Intent to ship zoom.reseteButton.onclick ([694cbcb](694cbcb)), closes [#1171](#1171)
@netil
Copy link
Member

netil commented Mar 20, 2020

🎉 This issue has been resolved in version 1.12.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

@netil netil added the released label Mar 20, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants