Package selection guidance compiled from public package information, community data, and project usage.
Bezier Chart is a Flutter widget that renders smooth, interactive line charts using Bezier curves. It offers high customization for colors, animations, and data points, making it ideal for visualizing time-series or numerical data with elegance. The chart supports touch interactions like zooming, panning, and tooltips, enhancing user engagement. Designed for developers seeking a visually appealing and responsive chart solution, it integrates seamlessly into Flutter apps without requiring external dependencies beyond the core framework.
Use cases
Real-time data monitoring
Financial trend visualization
User activity tracking
Interactive dashboards
Educational data presentation
Key features
Smooth Bezier curve rendering
Touch gestures (zoom, pan)
Customizable colors and styles
Animated data transitions
Tooltip support on tap
Configurable grid and axis
Suitable for
Data-heavy applications
Dashboards with dynamic content
Mobile apps needing elegant visuals
Prototypes requiring fast chart integration
Developers valuing interactivity
Considerations
Limited to line chart type
No built-in support for multiple series
Performance may degrade with very large datasets
Requires manual handling of complex data formatting
Original README
Original README snapshot from the linked source repository. Visit the repository for the latest content.
Bezier Chart
A beautiful bezier line chart widget for flutter that is highly interactive and configurable.
Features
Multi bezier lines
Allow numbers and datetimes
Gestures support like touch, pinch/zoom, scrolling
Highly customizable
Instructions
Long press and drag to display the indicator
Tap to dismiss the indicator
When using chart Scale different from Custom, you can change between WEEKLY, MONTHLY, YEARLY using pinch/zoom when the indicator is not visible.
Getting started
You should ensure that you add the dependency in your flutter project.
dependencies:bezier_chart:"^2.0.0"
You should then run flutter packages upgrade or update your packages in IntelliJ.
Example Project
There is a example project in the example folder. Check it out. Otherwise, keep reading to get up and running.
In this table, you can find all attributes provided by BezierChartConfig:
Attribute
Default value
Description
showVerticalIndicator
true
true if you want to display the vertical indicator
verticalIndicatorColor
Colors.black
verticalIndicatorStrokeWidth
2.0
width of the line used for the vertical indicator
verticalIndicatorFixedPosition
false
true if you want to keep the info indicator in a fixed position
verticalLineFullHeight
true if you want to display the vertical line in full height
bubbleIndicatorColor
Colors.white
Color of the bubble indicator, it's white by default
bubbleIndicatorTitleStyle
const TextStyle()
TextStyle for the title displayed inside the bubble indicator
bubbleIndicatorValueStyle
const TextStyle()
TextStyle for the value displayed inside the bubble indicator
bubbleIndicatorValueFormat
null
NumberFormat for the value displayed inside the bubble indicator
bubbleIndicatorLabelStyle
const TextStyle()
TextStyle for the label displayed inside the bubble indicator
backgroundColor
Colors.transparent
Color of the background of the chart
backgroundGradient
Gradient of the background of the chart
displayYAxis
false
true if you want to display the value of the Y axis, [false] by default
stepsYAxis
If [displayYAxis] is true, then you can set a positive value to display the steps of Y axis values. e.g 1: stepsYAxis : 5 , if your maxValue is 100, then the Y values should be: [0,5,10,15 .... 100] e.g 2: stepsYAxis : 10 , if your maxValue is 100, then the Y values should be: [10,20,30,40 .... 100]
startYAxisFromNonZeroValue
true
true if you want to start the values of Y axis from the minimum value of your Y values
yAxisTextStyle
TextStyle of the text of the Y Axis values
xAxisTextStyle
TextStyle of the text of the X Axis values
footerHeight
35.0
Height of the footer
showDataPoints
true
true if you want to display the data points
snap
true
true if you want to snap between each data point
pinchZoom
true
true if you want to enable pinch Zoom for bezierChartScale of date types Pinch and zoom is used to switch beetwen charts of date types
contentWidth
If the contentWidth is upper than the current width then the content will be scrollable (only valid for bezierChartScale = CUSTOM)
displayLinesXAxis
false
true if you want to display a vertical line on each X data point, it only works when there is one BezierLine
xLinesColor
Colors.grey
Color for the vertical line in each X point, only works when displayLinesXAxis is true
displayDataPointWhenNoValue
true
true if you want do display the dot when there is no value specified (The values inside onMissingValue)
physics
const AlwaysScrollableScrollPhysics()
The physics for horizontal ScrollView
updatePositionOnTap
false
true if you want do update bubble info on tap action instead of long press. This option will disable tap to hide bubble action