The pie is as shown below
is there a way to associate ace falling load to color say orange , 3 -point technique to green
tried with
Highcharts.setOptions({
colors: ['#F64A16', '#0ECDFD',]
});
this works fine on load if a user applies a filter some time ace falling load might not come then the color suffuses is there a way to tick the color to a value always in highchairs
please point to a sample
The easiest way to achieve that is by specifying each point's colour inside the series.data
series: [{
type: 'pie',
data: [{
name: 'Red',
y: 10,
color: '#ff0000'
}, {
name: 'Green',
y: 10,
color: '#00ff00'
}, {
name: 'Blue',
y: 10,
color: '#0000ff'
}]
}]
API Reference:
https://api.highcharts.com/highcharts/series.pie.data
Demo:
https://jsfiddle.net/BlackLabel/1sh5kp93/
I want to add echarts markpoint to chart for show specific events, as the figure below. I expect that I can add event on specific date. And when user hover event block(D), they can see tooltip about some details.
I tried to use echarts markpoint option to add event block, but I don't know how to get hover event to show tooltip. And I want to add event to specific data, but now I just can set it position by (x, y). Or Is there any way/option to solve my problem? Thank you!
markPoint: {
symbol: 'rect',
symbolSize: 15,
label: {
formatter: 'D',
},
itemStyle: {
color: 'rgba(70,78,86,.9)',
},
data: [
{ x: 70, y: 140 },
],
},
actual result
https://i.imgur.com/cE4HObG.png
expected result
https://i.imgur.com/UR2UBAO.png
Is there any Option for active brush without showing a toolbox.
Working with Echarts library version 3 . trying to find a solution with Echarts provided Document
"https://ecomfe.github.io/echarts-doc/public/en/option.html#toolbox.feature.brush.icon.rect"
Sample Code
{
brush: {
toolbox: ['rect'],
brushLink: [0, 1, 2, 3],
brushType: 'rect',
brushMode: ['single'],
outOfBrush: {
color: '#abc'
},
brushStyle: {
borderWidth: 2,
color: 'rgba(0,0,0,0.2)',
borderColor: 'rgba(0,0,0,0.5)'
},
throttleDelay: 300
},
toolbox: {
show: false,
feature: {
brush: {
type: ['rect'],
title: {
rect: 'Active Brush'
}
}
}
}
}
To enable dataZoom feature (pragmatically) in echarts toolbar I have used below method
echartInstance._componentsMap[Object.keys(echartInstance._componentsMap)[0]]._features['dataZoom'].model.iconPaths.zoom.trigger('click');
or
echartInstance._componentsMap[' - 0_toolbox']._features['dataZoom'].model.iconPaths.zoom.trigger('click');
Similarly you can enable any echarts toolbar feature using the same mechanism.
Note: If you are using latest EChart then you may have to use _componentsViews instead of _componentsMap.
Thanks to Rob Laverty for updating us for above change.
Just did this to Echarts 5:
echartInstance._componentsViews
.find(c => c._features && c._features.dataZoom)
._features.dataZoom.model.iconPaths.zoom.trigger('click')
Is there a way to create a Legend control for series that belong to Indicator Plot with Dojo Charting.
I've tried some standard well described ways from the documentation. But with no success! Legend are not appearing for Indicator Plot.
Maybe somebody know is it possible to draw legend for this case or not?
Thanks in advance!
EDIT(my code added):
1. id - id of chart dom element.
2. opts.chartOpts - chart options from outside js.
3. legname - id of legend dom element.
4. scale.avg - is just a double value.
this.chart = new Chart(id, this.opts.chartOpts);
this.chart.addPlot("default", {
animate: { duration: 1000, easing: easing.linear },
type: ColumnsPlot,
markers: true,
gap: 1
});
this.chart.addPlot("avgline", {
type: IndicatorPlot,
vertical: false,
lineStroke: { color: "#00ff00", style: "ShortDash" },
stroke: { width: '1.2px' },
fill: '#eeeeee',
font: 'normal normal normal 11px Arial',
labels: 'none',
offset: { x: 32, y: 4 },
values: [scale.avg],
precision: this.opts.precision
});
//Add axis code goes here... cutted for clearance
this.chart.addSeries('Power', chartOptions.data);
this.chart.addSeries('Average', [scale.avg], { plot: 'avgline' });
var tip = new Tooltip(this.chart, "default", { 'class' : 'kaboom' });
var mag = new Magnify(this.chart, "default");
var hightlight = new Highlight(this.chart, "default");
this.chart.render();
this.leg = new Legend({ chart: this.chart, horizontal: false }, this.legName);
And as result of this code I see legend for 'default' plot 'Power' series only. And nothing for 'Average' series.
I'm looking for a way to create what come to know to be called a "bubble chart" for a website I'm building. It needs to be compatible with IE7 and above, and of course all the good browsers like Firefox, Chrome and Safari. And no flash since this thing will need to run on iOS.
The chart needs to look like this, http://www.flickr.com/photos/jgrahamthomas/5591441300/
I've browse online and tried a few things, including:
Google Scatter Charts. This doesn't work as it seems Google Charts limits the size of a point to something smaller than I need. And Venn Diagrams are limited to three circles.
Protovis Dots. Great library, but isn't compatible with IE8.
Raphael Javascript. This one might be my best bet, but there's no explicit support for bubble charts.
Thanks for your help.
It looks like Raphael javascript is the way to go. It's compatible with IE6. I found a great tutorial at http://net.tutsplus.com/tutorials/javascript-ajax/an-introduction-to-the-raphael-js-library/ and am able to get the example working on my rails site with this code:
# window.onload = function() {
# var paper = new Raphael(document.getElementById('canvas_container'), 500, 500);
# var circle = paper.circle(100, 100, 80);
# for(var i = 0; i < 5; i+=1) {
# var multiplier = i*5;
# paper.circle(250 + (2*multiplier), 100 + multiplier, 50 - multiplier)
# }
# var rectangle = paper.rect(200, 200, 250, 100);
# var ellipse = paper.ellipse(200, 400, 100, 50);
# }
You can give Protovis a chance, the library looks good for your needs: http://vis.stanford.edu/protovis/ex/
Another charting library is Highcharts, but I haven't tried it yet: http://www.highcharts.com/
Have you had a look at flot?
It's a plotting library for jQuery. While it technically doesn't have any "native" support for bubble charts it is possible to create bubble charts with it by using a few tricks, the simplest one probably being to simply put each point in its own data series (thus allowing you to control the radius of each individual point.
By defining your points similar to this you'll be able to create a bubble chart:
var dataSet = [{
color:"rgba(0,0,0,0)", // Set the color so it's transparent
shadowSize:0, // No drop shadow effect
data: [[0,1],], // Coordinates of the point, normally you'd have several
// points listed here...
points: {
show:true,
fill:true,
radius: 2, // Here we set the radius of the point (or rather, all points
// in the data series which in this case is just one)
fillColor: "rgba(255,140,0,1)", // Bright orange :D
}
},
/* Insert more points here */
];
There is a bubble chart available for flot here
Note that you need to scale your bubbles size yourself if you don't want them to coverup the graph. Documentation is here.
To use it, add the following at the beggining of your html page:
and call it from a json result or any data object like in this sample:
$.getJSON('myQuery.py?'+params, function(oJson) {
// ... Some validation here to see if the query worked well ...
$.plot('#myContainer',
// ---------- Series ----------
[{
label: 'Line Sample',
data: oJson.lineData,
color: 'rgba(192, 16, 16, .2)',
lines: { show: true },
points: { show: false }
},{
label: 'Bubble Sample',
data: oJson.bubbleData, // arrays of [x,y,size]
color: 'rgba(80, 224, 80, .5)',
lines: { show: false },
points: { show: false },
},{
label: 'Points sample',
data: oJson.pointsData,
color: 'rgba(255, 255, 0, 1)',
lines: { show: false },
points: { show: true, fillColor: 'rgba(255, 255, 0, .8)' }
},{
...other series
}],
// ---------- Options ----------
{ legend: {
show: true,
labelBoxBorderColor: 'rgba(32, 32, 32, .2)',
noColumns: 6,
position: "se",
backgroundColor: 'rgba(224, 224, 224, .2)',
backgroundOpacity: .2,
sorted: false
},
series: {
bubbles: { active: true, show: true, fill: true, linewidth: 2 }
},
grid: { hoverable: true, clickable: true } },
xaxis: { tickLength: 0 }
}); // End of plot call
// ...
}); // End of getJSON call
I tried to do the same thing with jqPlot which has some advantages but doesn't work with bubbles and other kind of series on the same graph. Also Flot does a better job to synchronise common axis scale with many series. Highchart does a really good job here (mixing bubble chart with other kind of series) but isn't free for us (government context).