
Security News
Another Round of TEA Protocol Spam Floods npm, But It’s Not a Worm
Recent coverage mislabels the latest TEA protocol spam as a worm. Here’s what’s actually happening.
bubblechart
Advanced tools
BubbleChart is a JavaScript module for the comparative visualization of two dimensional data in a bubble chart.
BubbleChart is a JavaScript module for comparative visualization of two dimensional data in a bubble chart.
To Create a new chart you simple create a new BubbleChart Object passing it
your configuration options, then to create the chart, just call .paint()
var chart = new BubbleChart({
canvasId: "bubblechart",
metric: "Kb",
usedArea: 0.35,
contain: true,
popoverOpts: {
textFont: "Open Sans",
},
data : myCustomData()
});
chart.paint();
This is the exploded view of possbile options (with included defaults)
{
canvasId: "", // id of target <canvas>
usedArea: 0.5, // how much of the canvas you wish to use for bubbles
data: [], // Array of data objects (converted into bubbles)
metric: "", // Label for your data metric (shown in popover)
attribution: true, // controls "(Powered by BubbleChart)"
fillColors: [], // Array of colors to randomly choose from if data
// object lacks fillColor
contain: false, // keep bubbles within the canvas
gutter: 0, // containment gutter
borderColor: "", // Global Bubble border color
borderSize: 0, // Global Bubble border size
textColor: "#fff" // Bubble label color
textType: "helvetica" // Font
popoverOpts: { // Control the look of the hover popover
textFont: 'helvetica',
textColor: '#fff',
fillColor: '#333',
labelSize: 22, // Popover Heading size
metricSize: 14, // Popover Metric size
opacity: 0.6,
}
}
Data objects are what create the bubbles. Any of these objects will cascade options set globally in the main BubbleChart Object.
Each data object's data property will determine the size of the bubble in
relation to the rest of the data object's data properties. This is how you
get the visual representation of your data.
{
label: "Name of the thing",
data: 10,
metric: "this specific metric",
borderColor: "#FFF",
borderSize: 3,
img_src: 'http://.../someImage.jpg'
}
You can provide an image to be centered within the bubble by providing
a img_src property in your data objects. Keep in mind the following:
img_area to adjust the displayExample of a data object with an image covering 60% of the bubble:
{
label: "Name of the thing",
data: 10,
img_src: 'http://.../image.jpg'
img_area: 0.6
}
If your img_src value contains @2x it will be treated as a retina image and
be downsized (by 2) for display.
If you do not specify @2x images, and the client pixel density is greater
than 1, this module will reduce the image size to prefer image clarity over size.
There is a provided Spinner object you can use to show a loading animation if loading your custom data is a time consuming process.
Example
var chart = new BubbleChart({
canvasId: "bubblechart",
metric: "Kb",
usedArea: 0.35,
contain: true,
popoverOpts: {
textFont: "Open Sans",
}
});
chart.spinner.start();
chart.data = myCustomData();
chart.reload()
chart.spinner.stop();
chart.paint();
<canvas> support)see CONTRIBUTING.md
FAQs
BubbleChart is a JavaScript module for the comparative visualization of two dimensional data in a bubble chart.
We found that bubblechart demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Recent coverage mislabels the latest TEA protocol spam as a worm. Here’s what’s actually happening.

Security News
PyPI adds Trusted Publishing support for GitLab Self-Managed as adoption reaches 25% of uploads

Research
/Security News
A malicious Chrome extension posing as an Ethereum wallet steals seed phrases by encoding them into Sui transactions, enabling full wallet takeover.