npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@flourish/axes-highlights

v4.0.0

Published

Axis highlighting

Downloads

378

Readme

Flourish axes highlights

This module lets users add highlights to flourish-chart-layout (or flourish-axes) axes.

Getting started

1. Installation

npm install --save @flourish/axes-highlights

2. Add settings and state

const state = {
    axes_highlights: {} // Add any properties to this object to override the default settings
}
# template.yml
- property: axes_highlights
  import: "@flourish/axes-highlights"

3. Initialize the axes highlights

import initAxesHighlights from "@flourish/axes-highlights";
var axes_highlights = initAxesHighlights(state.axes_highlights);

4. Update axis highlights

In the template's update function (e.g. updateGraphic) you typically call the following methods:

let container = select(...);

axes_highlights
    .appendTo(container)
    .chartLayout(chart_layout)
    .update();

The minimum methods you will need to use is appendTo, chartLayout and update. See "Methods" for full configuration.

container is a D3 selection representing the element the highlights should be rendered in. You may need to import d3-transition in the module that makes the container selection, so that transitions are available. (Without this, the axis highlights might not display at all.)

This basic implementation appends the axes highlights to a container (container). If you want to append multiple axes highlights containers (for multiple facets for example) inside the same parent container, you can use the offset() method to position the axes highlights container (see example of implementation here). Axes highlights should be appended per facet, so for example in LBP and scatter it is called in the facet.js file for each facet group.

Methods

axes_highlights.animationDuration(number)

How long you want the animations to take. Expects a number.

axes_highlights.appendPatternsTo(selection)

Axis highlights can be rendered using an SVG pattern. Pass in the container you want the patterns to be appended to. It takes a d3 selection. If this is not called it will default to the appendTo container. As axes highlights are called per facet, it would be inefficient for a template with multiple facets to append the patterns to the facet container, as it would lead to patterns being defined more times than necessary. So if you are using a template that has multiple facets you should call appendPatternsTo just once in the draw function, passing it a container that wraps all of the facets (such as the svg) so that the same patterns are used for all axes highlights. If it is a template that doesnt have multiple facets you dont need to call this method as the default should work fine.

axes_highlights.appendTo(selection)

The parent element to append it to. We tend to use the fl-data-foreground group as the parent (if it exists). e.g. .appendTo(select(".fl-data-foreground")). Expects a d3 selection.

axes_highlights.chartLayout(chart_layout)

Specifies a chart layout (or axes) instance to attach the highlight to. Used for scales, margins, plot dimentions etc (should be one per facet).

Expects it to have the following properties, typically part of the @flourish/chart-layout (or @flourish/axes) module:

- xDatetimeParse
- yDatetimeParse
- margins
- plot_height
- plot_width
- xData
- yData
- xScale
- yScale

axes_highlights.facetName(string)

Name of facet, used to know if the highlight should apply to that facet or not. Expects a string.

axes_highlights.numberParser(fn)

Used to parse numbers e.g. localization.getParser(). Used to parse numbers when one of the axes is of type number. (If the axes are of type date we use the chart layout (or axes) date parsers and strings arent parsed). Expects a function.

axes_highlights.offset(object)

Adds offset to the axes highlights container. Expects an object containing an x and y property, eg. {x: 25, y: 10}.

axes_highlights.update()

Update highlights!

axes_highlights.xDisabled(boolean)

If you want x highlights to be disabled (e.g. in LBP when a chart doesnt have an x axis). Expects a boolean.

axes_highlights.xExtendByStep(boolean)

If you want x area highlights to be extended (e.g. in LBP the area goes beyond the exact x value because it is covering a grid of columns). Expects a boolean.

axes_highlights.yDisabled(boolean)

If you want y highlights to be disabled (e.g. in LBP when a chart doesnt have an y axis). Expects a boolean.

axes_highlights.yExtendByStep(boolean)

If you want y area highlights to be extended (e.g. in LBP the area goes beyond the exact y value because it is covering a grid of columns). Expects a boolean.