Custom Bar/Column Chart Plugin (Show Totals, Sort Categories, Sort Breakbys)
Steps to install (Current Version is V2.9.0):
- Download from my GitHub
- Download a ZIP of the project, Unzip the folder customBarColumnChart-master, add it to your plugin folder, and rename the folder customBarColumnChart
Description:
When you add a breakby to a bar or column chart, you lose the ability to see the total value for the bar/column, you lose the ability to sort the category based on the total amount in each bar/column, and you never had the ability to sort the breakby. This plugin allows you to do all 3 in an easy to use way. In addition, you can also sort a column/bar chart in any custom predefined configuration.
Example Usage:
- Put plugin in /plugins folder and make sure the folder is called: customBarColumnChart
- Create/Edit column/bar chart
- Activate "CUSTOMIZE CHART" option on the Design Panel.
- Play around with a few options
- EASY SUCCESS! =D
Here you can see the new menu option in the bottom right of the screen outlined in red:
I easily turned on the CUSTOMIZE CHART option, and decided that this chart would be more useful if I could show totals for each column, sort the categories descending, and sort inside the breakby so that the most recent dates are at the top of the column instead of at the bottom.
You can easily click between the various options to see what works best for your usecase! It works on both Column Charts + Bar Charts, and you can play around with all 3 Types (Classic, Stacked, Stack 100). This also supports slice/highlight filtering, drilling, jumping, and even PDF reporting.
Here is another chart that demonstrates a non-stacked bar chart:
In this second example, you can see how the categories are sorted ascending based on the total bar value, as well as how the breakby is now sorted from largest to smallest based on the totals. You can see breakby (legend) is in the same order as the category sorting on the above chart (Bikes was the largest total, Cables & Housing was the smallest total).
Did I mention it supports Column/Bar charts that have multiple series but no breakby as well!
You can even configure your own custom sorts:
This bar chart now has the categories sorted where the countries starting with M and N are at the top. The breakby can be sorted the same way. All you have to do is drag and drop items based on your liking. As soon as you click off to the side of the popup or click Save, the configuration will save. If you don't like the updates you made, just click cancel. If you ever want to you can reset the configuration as well.
There is also functionality to configure the Show Totals:
Here is the widget script for the left chart:
widget.on('processresult', function(w, args) {
//args.widget.custom.barcolumnchart.totalLabelEnabled = false;
args.widget.custom.barcolumnchart.totalSeriesName = 'Total (YOU CAN NAME THIS SERIES)';
args.widget.custom.barcolumnchart.totalPointColor = 'green';
args.widget.custom.barcolumnchart.totalPointFontSize = '20px';
args.widget.custom.barcolumnchart.totalPointSize = '7';
args.widget.custom.barcolumnchart.totalAsLine = true;
args.widget.custom.barcolumnchart.totalPointFontFamily = 'Times New Roman';
args.widget.custom.barcolumnchart.totalYAxisPercentSpacing = 100;
args.widget.custom.barcolumnchart.totalLabelPadding = 100;
});
Here is the widget script for the right chart:
widget.on('processresult', function(w, args) {
args.widget.custom.barcolumnchart.totalPointColor = '#19b9c9';
args.widget.custom.barcolumnchart.totalPointFontSize = '13px';
args.widget.custom.barcolumnchart.totalPointSize = '0';
args.widget.custom.barcolumnchart.totalAsLine = false;
args.widget.custom.barcolumnchart.totalPointFontFamily = 'Times New Roman';
});
Also supports various chart types:
Overall this plugin should be a huge nice to have for most! I hope you enjoy and I’d love to get your feedback! =D
Special Thanks to Artem Yevtushenko for his sorting breakby script. Very big thank you to Jason Sears for teaching me how to make the plugin more responsive and PDFable. Very big thank you to Shani Adani for showing me how to make the plugin responsive even when you change the chart types, and for helping me clean up the code.
-
Hi Elliot,
I am on version 7.1.3, and it doesn't show in the Design Panel. As instructed in the documentation, I renamed the folder and added it to the plugin folder, created a Column/Bar chart, hit apply and refreshed the page several times but still don't see anything. Does this work for this version?
Thanks!
-
Hey Elvin,
Just tested on 7.1.3.11003. Works as expected. Can you try removing the plugin completely, and re-adding it. In addition, please try clearing your browser cache, I've noticed that it can keep previous parts of the plugin. Also, the plugin now works instantly when you create a widget, so there shouldn't be any need to refresh the page.
Let me know if you still can't get it to work.
Best,
Elliott
-
Hey Elliott,
The sidebar is great. Really nice solution.
Some follow ups -- Once in a while the sidebar and the preview can be misaligned after shuffling a few items around. See below. Not a huge deal, but figured you'd want to know.
Second, the animation when moving items highlights a target box in green -- to me this isn't super precise. Innately, I feel like that highlighting means "swap" or "replace". Could the animation highlight the border between the other listings, like when you're moving a column in Excel?
Third, on the live sorting, I've got three options -- Save, Cancel and Revert. Save obviously saves. Revert seems to completely remove all sorting and return the list to alphabetical. What does Cancel do? I would assume that it should cancel anything that I've done in the current sidebar session and return the sort to what existed prior to opening the custom sort configuration, but it seems like it just closes the window and leaves the sort with however it has been updated, which is the exact behavior of Save.
Thanks for your hard work on this Elliott!
-
V2.6.0 just dropped!
Made the code even cleaner! Fixed the bug where in the custom sort popup sometimes the list it out of sync with the chart. Also fixed the cancel button. In addition I gave the ability to name the Total series whatever you want in a widget script. Still working on the styling of the custom sort page.
Happy Holidays =D
-
Hey Brian,
Thank you for testing again! Everything should be working as expected. The live sort is still a bit interesting, and I do want to fix it up more, as well as the look of the drag and drop, making it more intuitive. Let me know if you have any other recommendations/suggestions.
Best,
Elliott
-
Hey Brian,
It's a good idea and I've had a few people ask me already. Based on initial investigations it didn't seem possible, as Highcharts officially said they don't support such a feature, but after more investigation this morning, it looks like someone was able to override some of the highchart rendering functions to accomplish it. I am not sure if I can access/override these settings in Sisense though. So let me play around and I'll let you know if possible.
Best,
Elliott
-
V2.8.2 just dropped over the weekend!
Fixed the BreakBy Asc/Desc per Category Sort with negative values. When there are negative numbers, both stacked charts are a bit confusing...expected behavior is debateable.
I noticed that there can be an issue with showing totals when there are negative numbers in a column/bar as well, so currently working on fixing that.
Hope you enjoy! =D
-
Hey Elliott,
Great work. This should go into the product. Addresses a lot of needs.
I just upgraded to v7.3.0.12008 this morning and I'm not seeing the Option Toggle for it in the Design Panel. So far I've tried:
- clearing caches and incognito mode in browser
- disabling and reenabling plugins
- pulling all the plugins out of the plugin folder and restoring them
- IISReset
- rebooting the serverIs is not working in v7.3? If so, is there anything else I should try?
Regards, Jim
-
Elliott,
I restarted the Plugin service and checked the folder name. The plugin is enabled. I created a new column chart, but the Customize menu still doesn't appear. This is on a customer's system running v 7.2.1.10226. This is working for me on another customer's system running v7.2. It must be something I'm doing or not doing. Any ideas?
Regards, Elliott
-
Hey Jim,
Thank you for pointing this out! I just upgraded to V7.4 today and noticed the same. It'll take me a bit to investigate, but will try to update soon. It's interesting because this was working in previous versions, so it could be a conflict with a different plugin.
Best, Elliott
-
Hey Guys,
After further testing of the PDF export, I realized that everything is actually working correctly in the PDF export. There is another plugin that is conflicting with the PDF export, and was causing it not to work in my V7.4.2 environment. I disabled most of my plugins, and now everything works amazing in the PDF again:
If PDF export isn't working for you, I'd recommend turning of plugins until it works, and then let us know which plugin is breaking the PDF Export. I remember there was issues with older versions of the JAQline plugin.
Best, Elliott
-
I can confirm that the custom sorting (of the data) is now functioning as a custom break-by; my next question is how to get the legend to follow the same ordering. Case and point, I have break-bys done as %-ile buckets, namely (0, 0-25, 25-50, 50-75, 75-100, 100). While I can now sort the data points so that the bar chart orders them correctly, the legend is still out of whack with an order of 100, 0,50-75, 75-100, 0-25 (which I assume is the natural order the elasticube calculates. Without having to change the plugin itself, do you know offhand what the variable names are so I can just script a sort function (unless you are up for adding "sort the legends" feature).
-
Hey Sven,
This part of the plugin was also working back in V7.3. There is a new variable that R&D is using for the labels that is called a legendIndex (this dictates the sort order of the labels in the legend as well). I need to also add the legendIndex concept into my plugin as well.
Give me a few days and hopefully I'll release a new version that fixes this.
Best, Elliott
Please sign in to leave a comment.
Comments
111 comments