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

piechart legend/label enhancement #1954

Closed
tjohannto opened this issue Feb 19, 2021 · 4 comments
Closed

piechart legend/label enhancement #1954

tjohannto opened this issue Feb 19, 2021 · 4 comments

Comments

@tjohannto
Copy link

Would it be possible to add these features I added here (pie label background, bounding rect and custom legend using name, ratio and value):

image

https://jsfiddle.net/rxj70uka/

to the piecharts manually "onrendered"?

Or is there a smarter and less "costly" or more elegant way to have this features using BB?

p.s. feel free to use anything of this code as you like.

@netil netil added the request label Feb 19, 2021
@michkami
Copy link
Collaborator

Actually, it would be nice to have label backrounds in all chart types.

We are rendering background labels in {{onrendered}} for all types being usable in "Combination Chart" (area, bar, line etc.). The problem is that the background rects have to wait for the text transition to end, so that the texts are moved first and immediately after the transition ends, the background rects are transitioning to the new position.

By implementing the background rects functionality directly into billboard, it would be possible that the texts and the backgrounds would use the same transition.

@netil netil added the feature label Jun 4, 2021
@netil
Copy link
Member

netil commented Jun 4, 2021

@tjohannto @michkami,

using svg <filter> can make texts to have backgrounds.

onafterinit: function() {
	const backgroundColor = "red";
	const defs = this.internal.$el.defs || this.internal.$el.svg
		.insert("defs", ".bb-main");

	defs.append("filter")
		.attr("x", 0)
		.attr("y", 0)
		.attr("width", 1)
		.attr("height", 1)
		.attr("id", "bg")
		.html(`<feFlood flood-color="${backgroundColor}" />
			<feComposite in="SourceGraphic"/>`);

	this.$.text.texts.attr("filter", "url(#bg");
}

Adding as new option might facilitate the process.

data: {
    labels: {
        backgroundColor: "red",

        // or specify colors by data series
        backgroundColor: {
                data1: "red",
                data2: "blue"
        }
    }
}

netil added a commit to netil/billboard.js that referenced this issue Jun 7, 2021
Implementation for new data.labels.backgroundColors option

Ref naver#1954
@netil netil closed this as completed in e0b2fed Jun 7, 2021
github-actions bot pushed a commit that referenced this issue Jun 25, 2021
# [3.1.0](3.0.3...3.1.0) (2021-06-25)

### Bug Fixes

* **axis:** Fix axis.x.padding value setting ([5b4b509](5b4b509)), closes [#2038](#2038)
* **axis:** fix handling x padding value ([489d47a](489d47a)), closes [#2038](#2038)
* **candlestick:** fix to set expand state ([a055b20](a055b20)), closes [#2036](#2036)
* **Chart:** Handle nullish properties from API extendings safely ([6cbf64a](6cbf64a)), closes [#2132](#2132) [#2134](#2134)
* **data:** Fix duplicated data.onclick call  ([b4c5dc2](b4c5dc2)), closes [#2104](#2104)
* **data:** Fix nullish data filtering for grouped data ([af19370](af19370)), closes [#2096](#2096)
* **gauge:** Fix incorrect rendering when gauge.min is given ([31fc981](31fc981)), closes [#2123](#2123)
* **point:** Fix custom point for nullish data ([8c198f2](8c198f2)), closes [#2107](#2107)
* **region:** fix region append position ([2b50443](2b50443)), closes [#2067](#2067)
* **size:** enhance applying height value ([0664a60](0664a60)), closes [#2086](#2086)
* **tooltip:** Correct the type of selectedData ([05b694d](05b694d)), closes [#2056](#2056) [#2058](#2058)
* **types:** fix missing candlestick export ([f218939](f218939)), closes [#2007](#2007)
* **types:** updated bar/candlestick options types ([d89c3f3](d89c3f3)), closes [#2043](#2043)
* **zoom:** Fix incorrect tooltip position ([689bfdf](689bfdf)), closes [#2095](#2095)
* **zoom,grid:** fix grid line pos during zoom ([e84a4f1](e84a4f1)), closes [#2156](#2156)

### Features

* **all:** contain inline css prop setting ([fde6a89](fde6a89)), closes [#2076](#2076)
* **api:** Intent to ship append load ([8076795](8076795)), closes [#2140](#2140)
* **data:** Intent to ship data.onshown/onhidden ([af98eb7](af98eb7)), closes [#2146](#2146)
* **data.labels:** Intent to ship data.labels.backgroundColors ([e0b2fed](e0b2fed)), closes [#1954](#1954)
* **subchart:** Intent to ship subchart.init.range option ([967bf1b](967bf1b)), closes [#2037](#2037)
* **subchart:** Intent to ship subchart.showHandle ([219bff3](219bff3)), closes [#2044](#2044)
netil pushed a commit that referenced this issue Jun 25, 2021
* **Chart:** Handle nullish properties from API extendings safely ([6cbf64a](6cbf64a)), closes [#2132](#2132) [#2134](#2134)
* **data:** Fix duplicated data.onclick call  ([b4c5dc2](b4c5dc2)), closes [#2104](#2104)
* **data:** Fix nullish data filtering for grouped data ([af19370](af19370)), closes [#2096](#2096)
* **gauge:** Fix incorrect rendering when gauge.min is given ([31fc981](31fc981)), closes [#2123](#2123)
* **point:** Fix custom point for nullish data ([8c198f2](8c198f2)), closes [#2107](#2107)
* **region:** fix region append position ([2b50443](2b50443)), closes [#2067](#2067)
* **size:** enhance applying height value ([0664a60](0664a60)), closes [#2086](#2086)
* **tooltip:** Correct the type of selectedData ([05b694d](05b694d)), closes [#2056](#2056) [#2058](#2058)
* **zoom:** Fix incorrect tooltip position ([689bfdf](689bfdf)), closes [#2095](#2095)
* **zoom,grid:** fix grid line pos during zoom ([e84a4f1](e84a4f1)), closes [#2156](#2156)

* **all:** contain inline css prop setting ([fde6a89](fde6a89)), closes [#2076](#2076)
* **api:** Intent to ship append load ([8076795](8076795)), closes [#2140](#2140)
* **data:** Intent to ship data.onshown/onhidden ([af98eb7](af98eb7)), closes [#2146](#2146)
* **data.labels:** Intent to ship data.labels.backgroundColors ([e0b2fed](e0b2fed)), closes [#1954](#1954)
* **subchart:** Intent to ship subchart.init.range option ([967bf1b](967bf1b)), closes [#2037](#2037)
* **subchart:** Intent to ship subchart.showHandle ([219bff3](219bff3)), closes [#2044](#2044)
@tjohannto
Copy link
Author

data.labels.backgroundColor and data.labels.format does not seem to apply to pie charts, right?

@netil
Copy link
Member

netil commented Jun 30, 2021

@tjohannto, it works for all type of shapes.

There was a typo from API doc omitting last s (it should be "backgourndColors" not "backgroundColor")

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

3 participants