Live Chat Icon For mobile
Live Chat Icon
Popular Categories.NET  (141).NET Core  (21)Angular  (37)ASP.NET  (47)ASP.NET Core  (52)ASP.NET MVC  (83)Azure  (26)Blazor  (42)DocIO  (18)Essential JS 2  (63)Essential Studio  (158)Flutter  (37)JavaScript  (131)Microsoft  (95)PDF  (46)React  (28)Succinctly series  (118)Syncfusion  (371)TypeScript  (30)Uno Platform  (2)UWP  (4)Vue  (24)Webinar  (12)Windows Forms  (52)WPF  (84)Xamarin  (101)XlsIO  (19)Other CategoriesBarcode  (4)BI  (29)Bold BI  (3)Build conference  (6)Business intelligence  (53)Button  (4)C#  (97)Chart  (36)Cloud  (8)Company  (445)Dashboard  (4)Data Science  (3)Data Validation  (2)DataGrid  (25)Development  (232)Doc  (7)eBook  (89)Enterprise  (22)Entity Framework  (4)Essential Tools  (14)Excel  (10)Extensions  (6)File Manager  (3)Gantt  (6)Gauge  (3)Git  (3)Grid  (24)HTML  (8)Installer  (1)Knockout  (2)LINQPad  (1)Linux  (1)M-Commerce  (1)Metro Studio  (11)Mobile  (123)Mobile MVC  (9)OLAP server  (1)Orubase  (12)Partners  (20)PDF viewer  (14)PHP  (1)PivotGrid  (4)Predictive Analytics  (6)Report Server  (3)Reporting  (10)Reporting / Back Office  (11)Rich Text Editor  (5)Road Map  (9)Scheduler  (12)SfDataGrid  (7)Silverlight  (21)Sneak Peek  (10)Solution Services  (2)Spreadsheet  (2)SQL  (3)Stock Chart  (1)Surface  (4)Tablets  (5)Theme  (8)Tips and Tricks  (10)UI  (51)Uncategorized  (68)Unix  (2)User interface  (38)Visual State Manager  (1)Visual Studio  (12)Visual Studio Code  (6)Web  (77)What's new  (44)Windows 8  (19)Windows App  (1)Windows Phone  (15)Windows Phone 7  (9)WinRT  (26)
Share on twitter
Share on facebook
Share on linkedin
7 Tips to Improve Your Chart’s Readability

7 Tips and Tricks to Improve Your Chart’s Readability

We are very excited to publish our first blog in a series called Design Tips. We are planning to publish blogs in this series every Thursday for three consecutive weeks. In this blog, we will walk you through some useful tips and tricks to improve the readability of charts. In the upcoming blogs in this series, we’ll provide tips to make your charts more understandable and aesthetically appealing.

Charts are one of the most important and widely used data visualization elements for representing data in graphical form.

While designing charts, many of us will make mistakes due to lack of awareness of chart design principles. This might lead to:

  • Poor presentation.
  • Miscommunication of the story.
  • Difficulty in reading and understanding.

The following tips will help you improve the readability of your charts by eliminating common flaws in the design.

I have used the Syncfusion Flutter Charts widget for illustration. These tips are not limited to Flutter charts and are applicable to the charts in other platforms, as well.

#1 Keep the design simple by removing unnecessary styling

Always include only the necessary elements in the design. Don’t add more content and make it clumsy. Most of the time, the border, background, and grids will not convey any details about the data to the user. So, we can remove these and keep the design simple.

Remove the unnecessary stylingThis can be achieved by setting values for the chart border, chart title border, plot area border, and major and minor grid lines in both the vertical and horizontal axis. Refer to the following code example.

   
[Dart]
SfCartesianChart(
   borderWidth: 0,
   plotAreaBorderWidth: 0,
   primaryXAxis: NumericAxis(
      majorGridLines: MajorGridLines(width: 0)
   ),
   title: ChartTitle(
      text: 'Sales comparision of a product', 
      borderWidth: 0
   )
)   

#2 Display units instead of numbers

There may be cases in which you have large numbers in data, and you need to visualize them in a chart. Instead of displaying the numbers in their entirety, display them with units. (For example, display 1,000,000,000 as 1B.)

Display units instead of numbersThis can be achieved in Flutter charts by specifying values to the numberFormat property in primaryYAxis. For this, the intl package should be imported. Refer to the following code example.

   
[Dart]
import 'package:intl/intl.dart';

//...

SfCartesianChart(
   primaryYAxis: NumericAxis(
      numberFormat: NumberFormat.compact()
   ),
   //...
)

#3 Display proper axis scale

Axis scales convey the range of the data, starting, ending, and interval values, to the user. So, use proper interval values and change the label format based on your data. For example, if your data has values from various years, then displaying month and day values alone in the labels is not enough.

Display proper axis scaleYou can change the label format of the date-time axis using the dataFormat property in primaryXAxis. Refer to the following code example.

   
[Dart]
SfCartesianChart(
   primaryXAxis: DateTimeAxis(
      dateFormat: DateFormat.yMd()
   ),
   //...            
)

#4 Reduce unnecessary precision

For some real-time data, we deal with very precise decimal values. Displaying long decimal values in the chart will occupy too much space and degrade readability. So, in such cases, you should display the rounded-off values. For example, if your value is 17.8965432219, it should be displayed as 17.9.

Reduce unnecessary precision

For this, specify values to the decimalPlaces property in the primaryYAxis and the tooltip. Refer to the following code example.

   
[Dart]
SfCartesianChart(
   primaryYAxis: NumericAxis(
      decimalPlaces: 1
   ),
   tooltipBehavior: TooltipBehavior(
      enable: true,
      decimalPlaces: 1
   )
   //...
)

#5 Display additional details in interaction

In the design, there may be some information that is essential and must be displayed. But showing all of it together will look messy in the design. At that time, you might prefer showing the additional details on demand, i.e. using the tooltip feature in Flutter Charts. It will display the details of the data points in a pop-up when the user interacts with them.

Display additional details using tooltipsThe tooltip can be enabled by setting the enable property to true in TooltipBehavior. Refer to the following code example.

   
[Dart]
SfCartesianChart(
   tooltipBehavior: TooltipBehavior(
      enable: true
   ),
   //...
)

#6 Avoid abbreviation

Abbreviations are fine to in a chart. But it is even better to display the actual text. This will help users have a better understanding of the data. Also, if a user is not familiar with the abbreviation, then the information will not be completely conveyed to them.

Avoid abbreviationRefer to the code example of the chart on the right side in the following.

   
[Dart]
SfCartesianChart(
   series: <ChartSeries<ChartData, double>>[
      ColumnSeries<ChartData, double>(
         name: 'Click-Through Rate',
       ),
       LineSeries<ChartData, double>(
          name: 'Cost Per Click'            
       )
   ],
   //...
)

#7 Avoid text overlap

The axis labels’ text can overlap if there are a large number of labels, the labels are long, or the chart has a smaller width. In such cases, Flutter Charts will automatically hide the overlapping labels.  If it’s a numeric or date-time axis, it is fine to hide the overlapping labels. But if it is a category axis and you hide the overlapping labels, then the user will not know the x value of that data point.

In that case, you can apply other overlap actions besides hide, like wrap, multiple rows, rotate 45, and rotate 90.

Avoid text overlapThis can be achieved by setting these values in the labelIntersectAction property in primaryXAxis. Refer to the following code example.

   
[Dart]
SfCartesianChart(
   primaryXAxis: CategoryAxis(
      labelIntersectAction: AxisLabelIntersectAction.rotate45
   ),
   //...
)

Conclusion

We hope that these tips will help you in improving your Flutter Charts’ readability. Stay tuned for upcoming blogs in this series. Also check out our Charts component for different platforms in the following list:

If you wish to send us feedback or would like to submit any questions, please feel free to post them in the comments section of this blog post. You can also contact us through our support forumfeedback portal, or Direct-Trac support system.

Tags:

Share this post:

Share on twitter
Share on facebook
Share on linkedin

Leave a comment

Popular Now

Be the first to get updates

Subscribe RSS feed
Scroll To Top