Google Charts Stacked bar formatting and spacing between data - charts

I Used this parameter to create chart image
$params['cht']= 'bvs';//Chart Type
$params['chd'] = "t:";
$params['chd'].=$finaldata;//
$params['chm']= 'N,FF0000,-1,,12|N,000000,0,,14,,c|N,000000,1,,14,,c|N,000000,2,,14,,c';
$params['chs'] = $this->getWidth().'x'.$this->getHeight();// chart size
$params['chco'] = '4d89f9,C6D9FD,FF0000';//series color
$params['chbh'] = '80,20';//bar width and space
$params['chds'] = 'a';//$min_amount.','.$max_amount;//scaling for min and max amount
$params['chxt'] ='x';//visible axis
$params['chxr'] ='0,'.$min_value.','.$max_value;
$params['chg'] ='10,20';//Grid lines background
I am creating Stacked bar chart using google Visualization api.
I want to show the data in clear and proper spacing ,Stuck from 2 days .Thank you for help.

Related

Filling Color in anychart js chart in multiple quadrant scatter chart

Im newbie in js and anychart
I have anychart chart like this
how can i fill the color based on range like risk matrix.
*Result What i want
This is my code
// create data
var data = [
{x: 2.88, value: 3.12},
{x: 1.9, value: 2.3}
];
// create a chart
var chart = anychart.scatter();
// adjust scale min/max
chart.xScale().minimum(0).maximum(5.0);
chart.yScale().minimum(0).maximum(5.0);
// divide scale by three ticks
chart.xScale().ticks().interval(1.0);
chart.yScale().ticks().interval(1.0);
// create a bubble series and set the data
var series = chart.marker(data);
// enable major grids
chart.xGrid().enabled(true).stroke('0.1 blue');
chart.yGrid().enabled(true).stroke('0.1 blue');
var yAxis = chart.xAxis();
// set the chart title
chart.title("Quadrant-like Scatter Bubble Chart");
// set the container id
chart.container("container").draw();
});```
To get a risk matrix in the result, it’s better to use the Heatmap module.
Heatmap from your screenshot is recreated in this sample here: https://playground.anychart.com/0RAcumgI/3
Did we understand your question correctly?

iOS Charts Pie Chart Size

I am using iOS Charts with Swift 3.
I have a 100 x 100 PieChartView that renders the pie chart, but it's not filling the view (an NSView, to be precise). The gray box is the view and there's a large gap between the pie and the edge.
I have confirmed that the view is 100 x 100:
print(graph.frame) //<-- (25.0, 65.0, 100.0, 100.0)
So I assume there is something I need to configure in the pie chart to allow it to be the full size in the view. Here's what I've tried so far to no avail:
graph.holeRadiusPercent = 0.7
graph.transparentCircleRadiusPercent = 0
graph.legend.enabled = false
graph.chartDescription?.enabled = false
graph.minOffset = 0
Any ideas?
Found it! It turns out my graph was rendering the values in the pre-selection state. If I clicked on a pie segment, it would grow larger.
So by setting this property, the graph fills the available space:
ds.selectionShift = 0 //'ds' is my PieChartDataSet
I hope that helps someone else.

Add Margin and Chart header alignment in Jfree charts

Greeting,
I was wondering is it possible to add some margin to Jfree charts and align the chart title to left of the chart rather than default center of the chart.
Expected Chart
Need to add a 28 px margin to all directions. TOP , BOTTOM , LEFT and RIGHT
And to make the chart title align to the left rather than center.
Chart which i am able to generate
To Add margin to Chart we can add Padding
public void addMargin(JFreeChart jChart){
RectangleInsets chartRectangle = new RectangleInsets(28F,30F,30F,30F);
//RectangleInsets chartRectangle = new RectangleInsets(TOP,LEFT,BOTTOM,RIGHT);
jChart.setPadding(chartRectangle);
}
To align the header to Left set horizontal alignment to Chart title
public void alignChartTitle(JFreeChart jChart){
jChart.getTitle().setHorizontalAlignment(HorizontalAlignment.LEFT);
}
Set value to the lowerMargin, upperMargin property of X Axis. This is kotlin code:
val dateAxis = DateAxis("Time")
dateAxis.lowerMargin = 0.05
dateAxis.lowerMargin = 0.05
And this is the result:
[]

JfreeChart: Stacked Bar Chart and CategoryAxis showing dates

I have created a stacked bar chart in which I show a count on the y axis and dates on the x axis. The problem is that when I have many dates on the x axis it gets very cluttered and impossible to read. I would like to show only some of the dates, e.g one date per week. Is that possible? I am using ChartFactory.createStackedBarChart() to create the chart, and I have the data in a DefaultCategoryDataSet.
Any input is appreciated!
For a CategoryAxis, which is used the for the domain axis in a StackedBarChart, you have considerable flexility with the method setCategoryLabelPositions(). Typical usage is illustrated in the BarChartDemo1 source, shown here.
CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setCategoryLabelPositions(
CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 6.0));
Have you tried overriding the generateLabel methods in the label generator? Something like:
chart.getCategoryPlot().getRenderer().setBaseItemLabelGenerator(
new CategoryItemLabelGenerator() {
public String generateColumnLabel(CategoryDataset dataset, Integer column) {
if(column % 7 == 0)
super.generateColumnLabel(dataset, column)
else
""
}
}
);
I haven't tested the code, but it should only output a label every 7 columns. More info on the label generator is here: http://www.jfree.org/jfreechart/api/javadoc/org/jfree/chart/labels/CategoryItemLabelGenerator.html

How to show all legends in google Visualization: Pie Chart

i am using Google visualization pie chart for showing my vote details.But the chart didn't showing the zero values and legends.
How to show all legends in Google Visualization: Pie Chart
You can simply set the sliceVisibilityThreshold option to 0. This will force all the legends to show.
var options = {
sliceVisibilityThreshold: 0
};
var data = /* ... */;
var chart = new google.visualization.PieChart(/* ... */);
chart.draw(data, options);
What I did was to add a small value (0.005) to each of the values. When setting the sliceVisibilityThreshold: 1/25000, (1/25000 = 0.004) the slice/legend will be shown but the value will still be 0% due to rounding.