Large ratio values ssrs chart - reporting-services

I have a bar chart that show the count of number of models for each agency,
The problem is that I have a large difference between the values that makes the report to look not so good.
Does anyone have any ideas of a good way to resolve this problem?

Have you considered using a logarithmic scale?
With your chart Right-click the y-axis, and click Vertical Axis Properties.
In Axis Options, select Use logarithmic scale.
Leave the Log base text box as 10 (this is the scale most commonly used by logarithmic charts)
This will display a chart with a scale that goes up by a factor of 10 for each ‘unit’ up, so the distance between 1 and 10 is the same as that between 100 and 1000.
For example the shown dataset is displayed as this chart when using the logarithmic scale
This method is a simple and recognised way to clearly show values of widely different scales.
Update
If want an indicative bar for the vales that are 1 then you could use the expression
=iif(Fields!val.Value = 1, Fields!val.Value * 1.1, Fields!val.Value)
To make all values that are 1 equal to 1.1 so showing a tiny bar appearing a the bottom of the chart, as seen here
Unfortunately I don't know of a way to change that first 1 to a zero (formatting-wise). This is partly because you are now using a logarithmic scale and zero and negative values don't really exist. This is due to a fundamental property of logarithms in mathematics, that
LOG10(10)= 1
LOG10(1) = 0
LOG10(.1)=-1
Therefore, when you perform a log10 of zero, it just doesn't exist.

Related

SSRS : Overlapping Line in Line Chart

I have created a line chart which has the date as X-axis and Y-axis as calculated median value and its grouped according to "FileName". Problem is that some of the "FileName" has same median values which makes line overlap thus not able to see all the lines. Attached image shows only 5 lines but there are total 10 lines. After running query I found out other 5 has 50 as the median which makes it overlap with one of the line.
I tried using transparency and secondary axis but wasn't able to achieve the desired result. Is there any other solution to try out ? Thanks!
This is more of a data presentation issue than something specific to SSRS. If you are stuck on using a line chart, then I've only used two options:
1) Increment lines to different widths. For example, in a chart with 3 lines, the width is set to 5,3,1 pts.
2) Change the values insignificantly to offset the lines. Obviously this depends on the data being visualized as shifting the line slight (multiply by 0.1) may be allowable or highly discouraged depending on your situation.
Trying to do either option with 10 lines (and up to 5+ stacking) is not going to be very good.
I think Viking is right and you might want to check out other visualization options. Grouped column charts perhaps or just split your chart into multiple charts on the page (i.e. four separate trend charts)

SSRS - Major/minor gridlines spacing

I have an SSRS report with a bar chart with multiple series by CountryName Category group. What I want to do is have gridlines which split each country like below:
However in SSRS the major gridlines seem to interval with the line in the middle of the country name when the grid interval is set to 1 like below:
Can someone point me in the right direction into how to rectify this?
Also is there a way of adding the X axis in SSRS to start from zero like I have in my first graph?
Thanks
You can do it, there is an offset property on the grid lines (horizontal and vertical are separate). Click one one of the gridlines and look in the properties pane. Change the offset to 0.5.
Gives you this.
I'm not sure what you meant about starting from zero on the X-Axis, you have negative values so you'll start from a negative number. If you meant you wantde zero aligned to the middle. You can do that to. You need to set the min and max values of the horizontal axis to the following
Min Value:
=MAX(ABS(Fields!MyValueField.Value), "MyDataSet")*-1
Max Value will be:
=MAX(ABS(Fields!MyValueField.Value), "MyDataSet")
Basically we take the ABSolute largest value and use that as the extent (*-1 for the min value). The problem is that zero might not show so you'll have to play around with the Axis properties maybe to get that working. I'm sure it's possible but I don't have time to test at the moment.
My test data is not great as the number are large

SSRS - How to align the vertical axis of 2 chart areas on the one chart

I have basically loosely followed this link
http://www.angelsbiblog.com/2012/02/improve-data-visualization-in-your-ssrs.html
and made the below linked graph. Its one dataset, I have simply pulled in Gross Profit and Sales fields. Neither are calculated fields. I put them in 2 different chart areas, but then as per that link, made the chart areas the same size so they overlay.
*Apologies for a photobucket link instead of inserted image but I don't have 10 reputation points to be able to insert images.
http://i1375.photobucket.com/albums/ag447/AndrewJacksons/IncomeandProfit_zpse074ac02.jpg
what I want to do, is as illustrated by that inserted green arrow in the graph image, is raise up the Zero line for the Income bars (yellow) to the same level as the Profit/Loss(Blue-Red).
I also want the vertical axis to preferably have the same axis, so i dont have to have that secondary axis on the right.
However the main thing is the graphs sharing their zero line. I have made the Profit bars smaller I width than the yellow bars, so in a month of blue profit, it would simply sit neatly inside the yellow income bar.
I haven't added expenses because it should be obvious what they are by the height differential btw Income to Profit or to the Loss.
Any ideas much appreciated.
I have just experienced this problem, but this page did not solve it.
Dan's answer ("simply set the minimum and maximum values for the vertical axes on both areas manually") came close, but did not solve the problem for me because I needed the axis to be automatically calculated. If the maximum of the two datasets is something like 193,456 then you get that exact value as a label on the axis rather than the sensible value of 200,000.
The solution is to allow SSRS to calculate the axis labels automatically but to trick it by using both sets of data in each chart. Then you hide the data set that you don't want the user to see.
In each chart I made the data series of interest a column chart and the other data series a line chart (without markers), as all you need to do is set the fill color for the line series to None. If you try the same with columns for the other series the invisible columns affect the position of the visible columns even if they have been set to zero width.
Make sure both series in the chart use the Primary Vertical axis. Go into properties for the Income series > Go to "Axes and Chart Area", and make sure that the series uses the primary vertical axis:

Show 0 value in bar or column chart

In this screen shot from an SSRS report with bar charts, I would like for 0 values to display a tiny bit of color rather than just being blank. Here's what it looks like now:
Most of these charts have many series. I am generating a copy of the charts for each person under review and including the comparison values for everyone else in the group. I am thus coloring the bar representing the person under review differently from the normal color so they can easily see their performance compared to others.
Now, while there are y-axis labels, I would also like the 0 value to have at least a tiny sliver of color so everything is symmetric and the color can be seen. (I am also thinking about putting those with no data at all in the chart and need a way to distinguish those, so any ideas on how to accomplish that would help as well.)
I thought about making the axis start at -1 so the space from -1 to 0 would be colored, but I can't figure out how to get the labels to start at 0 (as shown) when I do this. I have played with quite a few settings and nothing is coming out right...
Sigh. I just figured it out.
Select the X axis.
Set CrossAt and Minimum properties to -1.
Set the IntervalOffset property to 1.
Important note: the chart in Design mode will NOT show correctly. Since I put an Interval of 20, it is showing -1 19 39 59 79 99, but when I actually Preview the report, the result is correct. Don't let yourself be thrown off by the design-mode pre-preview.
Now it looks like this:
If you leave out the CrossAt property, then the bars float away from the y-axis, leaving a gap. You must use all the properties I mentioned above to make the color reach past 0 all the way to the axis line.

Chart issues with SSRS

I am having a problem with getting a stacked area chart to display the right data in SSRS 2005.
On my Y axis, I want a scale from 50% to 100%.
On my X axis I have a set of dates formatted in a style that was necessary for the report (so varchar).
My data consists of 3 data fields which are decimal numbers and contained between 0 and 1, each with a specific date.
My problem is the scale of the Y-axis. I have set the maximum value to 100, the minimum to 50, the interval to 5, and the format to "p" for percentages.
On the preview in the layout tab, this all appears fine (Y-axis starting at 50% up to 100%).
However whenever I generate an actual report it goes from 5000% to 10000% for some reason. I have no idea how this is happening and it completely ruins the report.
I have tried tinkering in the properties for several hours but to no avail.
If this has happened to anyone and they have found a solution, or if anyone has any suggestions I would be very grateful.
Thanks.
When you use percentages, everything factors by 100.
If you want to format and display a value as 50% , it needs to be 0.5 unformatted. Percentages are therefore values between 0 and 1.
Excel and pretty much every other tool works that way.
If your values are all stored as percentages already, then you might just want to append the % symbol at the end of your values. Or better, divide everything by 100.
50 per cent means just that anyway; it means 50 per hundred (cent means 100) so 50/100 is another way of writing 50%.