I have a stacked bar chart with a total label
Bar Chart tableau
My problem is that when I select particular color(Part of bar chart), say Fuel from Charge type I can not get the value of Fuel in that label.
Is there a work around ? It is really crucial. Also, I am faily new, so can not post the question with images, please ignore the inconvenience.
Thanks.
Click on the Label button in the Marks box, and choose the "Allow labels to overlap other marks" option. You can also choose the "Select" option under Marks to Label, if you only want to see the number when the color is selected-or "Highlighted" if you want to select from the legend.
Related
In slate, chart widget have label option that display legend (color dot + label name) at some place of the chart (top, left, bottom, ...).
I notice 2 limitations with this legend on bar chart and I would like to improve them on my Slate apps.
1 issue: label are ordered in the order series appears on the bar chart (from left to right).
2 issue: when segmented and not-segmented data are stacked on the bar chart, label of not-segmented data have wrong color (even if we set series color parameter, and if we don't color attribution is random and change from one loading to the next).
For that reason I decided to produce my on labels in an HTML widget. I get a nice result just with a function that sort label and return a <div class="bp3-label" style="background:${labelColor};">${labelName}<\div> for each label. But I loose the interactivity (this is a convenient function of labels).
Is there a way to transfer this interactivity to my "custom label" and make click on this selecting all relevant bars on my bar chart?
I'm thinking to use slClickEvent and slClickEventValue props on the DIVs to push data relative to the clicked Label in a variable and to make the bar chart "selectedValue" property dependant of this variable.
Is it the best ways ?
Will the bar be highlighted in accorance with chart "selectedValue"?
You're on the correct track here - I often build custom chart legends in an HTML widget to have more control over the appearance and interaction compared to the native legend. If you search on your Foundry instance, you'll even find a folder of Slate apps that are examples of different HTML widget patterns, including one called HTML - Legend that shows some examples with custom CSS and Blueprint styles.
For the interactivity, I'd probably go with using custom HTML selection, rather than custom HTML click events, because with the custom selection, Slate will automatically add a selected class to whatever element you've added the selection to, which will make it easy to update the styling to reflect the selection.
Nothing would stop you from doing this with custom clickEvents instead, but you'd then need to also do some more work to reflect the selection status in the legend or else go without that extra affordance.
If you search your Foundry instance for Line Chart Series Selection with Custom Legend you'll find an example that shows exactly this. In that specific example, the Line "selection" is indicated on the chart by changing the line styling; with a Bar chart, you'd actually want to template (with Handlebars) the selection status of the chart in the </> panel. Then, when the user makes a selection using the legend, the chart will reflect that selection as if they'd chosen by clicking on the bars themselves.
I am creating an SSRS report in SSRS report builder 3.0. I currently have a table where the rows have a Data Bar inside of the cells. I cant figure out how to get the data label to center on the row. I tried selecting center under the Data Bar "Custom Attributes for "bar label style" and also under the Data Label under "position". Both seem to just center the label on the Data Bar itself not on the row.
I'm under the reputation limit or i would post an image of what I'm talking about.
Image link of current configuration http://imgur.com/lmvl9dI
I realise that this is an old post, but I stumbled across this forum searching for an answer to the same question. Unfortunately, I have to agree with Christopher, in that there is no way around the issue (that I know of).
However, I have used a very simple workaround that displays the data bar and values neatly, and thought it may be useful for others.
Quite simply, I have added another column to the right of the data bar, and have entered the same field. I have then removed the borders between the two textboxes, so that it displays the data bar to the left with the values aligned to the right.
While this does not provide an answer to the question as such, I hope that it may help others with the same problem in the future.
I suspect, unfortunately, that what you seek is not possible. The reason being that the label is a part of the bar. The label is defined for the entire series, and for each label, it is positioned relative to the bar itself. Relative to either the start or the end or the middle of the bar, but not relative to the chart's container.
What I imagine you wanting is to define something that is centered in the cell itself, which would have to be a direct component of the cell (e.g., placeholder, entered text). Unfortunately, when using a databar, you cannot add anything else into that cell.
I have a report with a table in it. And each table cell has borders around it.
The problem I'm experiencing is that if I hide the textbox in any of the cells, the borders also disappear.
I want the textbox to hide but still show the borders.
The textbox in question shows the visibility toggle icons (+/-) so I can't use an iif statement to change the textbox's value to be an empty string when I don't want to see anything in it.
You can place the textbox inside a rectangle.
***So , I was having this same issue:* **
The Problem:
I assume that you placed a border around your text box and decided to place the hide and toggle element to your text box. or your Rows are not stepped down. Two solutions, I think the first solution is what you are looking for:
Solution 1:
I Noticed that SRSS reporting also has this grouping feature by rows. So to hide the text in the textbox without losing borders is to create a step-down feature within the grouping. So basically you can assign hide text box property without disturbing the rows above the textbox. This may be a better solution.
Solution 2:
You must instead place the border attribute to your text box and place the hide and toggle function on the individual groups. So for you, you have to remove the hide + toggle feature on the textbox. Right click the group element in your "rows" or "columns" and assign your drilldown hide + toggle feature on the group elements. In other words: "group properties" not "text box properties"
I hope this re-solve your issue.
I ran into the same issue. I solved it by changing the text color to white (or whatever the background color of the textbox is). I was doing this inside a table, and couldn't find a way to insert a textbox inside of a rectangle as stated in the other answer...
I had similar problem and used similar approach like #Anony Mous, but instead of changing text color to background color I used expression to change text value =IIF(InScope("RowGroup") = "True", Fields!Textboxvalue.Value, "") - and it works as expected.
Problem with background color change is that, if user unintendely select the text and makes it active, it become visible.
Just select the Textbox in question, run F4 (to access to the properties chart at the right side of VS or SQL), select the HideDuplicates dropdown and Select the Data Set that you are using :)
I have created a bar chart that shows values on data labels.
The Data label is placed outside the bar
But in some cases the label appears on the bar where the bar is too long.
In this scenario I would like to conditionally change the font/colour of the data label so that it's more visible.
However I can't see a way to dynamically determine where the label has been placed.
What I can think of is this. You can change the background/font color of all those series labels who's value lies in the range of 95%-100% of the maximum "Value". To be exactly precise as to what should be the threshold to change the bg/font color seems a daunting task, but you could play around with test data.
For writing the expression to change the font color,I would first change the dataset and add a column on the lines of PercOfMax. This column can be calculated easily in the dataset by using basic aggregate functions.
Then you need to go to the Chart Series Label properties-->Color and write the expression on the lines of -
=IIF(Fields!PercOfMax.Value>=95, "YELLOW", "BLACK")
As I said, you might need to do some more research to finalize the value of this threshold(which I am assuming to be 95).
Another solution to this problem is to use fill colour of the label and set its background to a bright colour (e.g. colour), and leave the font colour of the label black. Thus you can always see the label, and there is no difference when it's outside of the bar.
Is there a way to change the color of specific line items in an SSRS chart? For example, in the Data tab using an expression within a series group or the values area, or perhaps with a variable? I'm not terribly keen on the color palette that in my current chart, wanting certain areas to stick out a bit more and not sure how to get started.
Thanks.
We do this to ensure different departments are coloured consistently across all reports. In our database we have a colour field on our department table, then in the bar graphs we do the following:
Right click the chart body and choose Properties
Click the Data tab
In the Values section, click the Edit button
Click on the Appearance tab
Click the Series Style button
Click the Fill tab
In the Color text box, put the expression that you want the colour to be. Given that we have this in our department database already, we simply use:
=Fields!DeptColour.Value
and then our departments are coloured the same on every bar graph.
For line graphs, you have to do the same except this time you put the colour expression in the Color text box on the Border and Line tab on the Series Style dialogue (rather than in the Fill).