JSCharting React is a React wrapper for JSCharting, a powerful charting library that provides advanced data visualization capabilities. It offers a wide range of chart types, interactive features, and extensive customization options for creating professional dashboards and analytics visualizations. This guide walks through advanced usage of JSCharting React, including complex chart configurations, interactive features, and dashboard implementations.
Prerequisites
Before you begin, make sure you have:
- Node.js version 14.0 or higher installed
- npm, yarn, or pnpm package manager
- A React project (version 16.8 or higher) or create-react-app setup
- Basic knowledge of React hooks (useState, useEffect, useRef)
- Familiarity with JavaScript/TypeScript
- Understanding of data visualization concepts
Installation
Install JSCharting React using your preferred package manager:
npm install jscharting-react
Or with yarn:
yarn add jscharting-react
Or with pnpm:
pnpm add jscharting-react
After installation, your package.json should include:
{
"dependencies": {
"jscharting-react": "^3.0.0",
"jscharting": "^3.0.0",
"react": "^18.0.0",
"react-dom": "^18.0.0"
}
}
Project Setup
JSCharting React requires minimal setup. Import the component and you're ready to use it.
First Example / Basic Usage
Let's create a simple chart. Create a new file src/ChartExample.jsx:
// src/ChartExample.jsx
import React from 'react';
import JSC from 'jscharting-react';
function ChartExample() {
const config = {
type: 'line',
series: [
{
points: [
{ x: 'Jan', y: 35 },
{ x: 'Feb', y: 28 },
{ x: 'Mar', y: 34 },
{ x: 'Apr', y: 32 },
{ x: 'May', y: 40 },
{ x: 'Jun', y: 32 }
]
}
],
title: { label: { text: 'Monthly Sales' } }
};
return (
<div style={{ padding: '20px', maxWidth: '800px', margin: '0 auto' }}>
<h2>Basic JSCharting Example</h2>
<JSC.Chart options={config} style={{ height: '400px' }} />
</div>
);
}
export default ChartExample;
Update your App.jsx:
// src/App.jsx
import React from 'react';
import ChartExample from './ChartExample';
import './App.css';
function App() {
return (
<div className="App">
<ChartExample />
</div>
);
}
export default App;
This creates a basic line chart with monthly sales data.
Understanding the Basics
JSCharting React provides a React component:
- JSC.Chart component: Main chart component
- options prop: Chart configuration object
- Chart types: Line, Column, Bar, Pie, Area, etc.
- Interactive features: Tooltips, zoom, selection, etc.
- Customization: Extensive styling and behavior options
Key concepts for advanced usage:
- Configuration object: Configure chart through options prop
- Series array: Define data series in series array
- Points array: Data points within each series
- Styling: Customize colors, fonts, and layouts
- Events: Handle chart events with callbacks
Here's an example with multiple series and custom styling:
// src/AdvancedChartExample.jsx
import React from 'react';
import JSC from 'jscharting-react';
function AdvancedChartExample() {
const config = {
type: 'column',
series: [
{
name: 'Sales',
points: [
{ x: 'Q1', y: 12000 },
{ x: 'Q2', y: 15000 },
{ x: 'Q3', y: 18000 },
{ x: 'Q4', y: 20000 }
]
},
{
name: 'Target',
points: [
{ x: 'Q1', y: 13000 },
{ x: 'Q2', y: 16000 },
{ x: 'Q3', y: 19000 },
{ x: 'Q4', y: 21000 }
]
}
],
title: { label: { text: 'Quarterly Performance' } },
legend: { position: 'bottom' },
xAxis: { label: { text: 'Quarter' } },
yAxis: { label: { text: 'Revenue ($)' } }
};
return (
<div style={{ padding: '20px', maxWidth: '900px', margin: '0 auto' }}>
<h2>Advanced JSCharting Example</h2>
<JSC.Chart options={config} style={{ height: '500px' }} />
</div>
);
}
export default AdvancedChartExample;
Practical Example / Building Something Real
Let's build a comprehensive analytics dashboard:
// src/AnalyticsDashboard.jsx
import React, { useState } from 'react';
import JSC from 'jscharting-react';
function AnalyticsDashboard() {
const [selectedMetric, setSelectedMetric] = useState('sales');
const metrics = {
sales: {
title: 'Sales Performance',
data: [
{ x: 'Jan', y: 35 },
{ x: 'Feb', y: 28 },
{ x: 'Mar', y: 34 },
{ x: 'Apr', y: 32 },
{ x: 'May', y: 40 },
{ x: 'Jun', y: 32 }
]
},
revenue: {
title: 'Revenue Trend',
data: [
{ x: 'Jan', y: 12000 },
{ x: 'Feb', y: 9800 },
{ x: 'Mar', y: 13400 },
{ x: 'Apr', y: 12800 },
{ x: 'May', y: 16000 },
{ x: 'Jun', y: 12800 }
]
},
users: {
title: 'User Growth',
data: [
{ x: 'Jan', y: 1200 },
{ x: 'Feb', y: 1350 },
{ x: 'Mar', y: 1500 },
{ x: 'Apr', y: 1650 },
{ x: 'May', y: 1800 },
{ x: 'Jun', y: 1950 }
]
}
};
const currentMetric = metrics[selectedMetric];
const lineChartConfig = {
type: 'line',
series: [
{
points: currentMetric.data,
defaultPoint: {
marker: {
type: 'circle',
size: 8,
fill: '#5470c6'
}
}
}
],
title: { label: { text: currentMetric.title } },
xAxis: { label: { text: 'Month' } },
yAxis: { label: { text: 'Value' } },
tooltip: { enabled: true }
};
const pieChartConfig = {
type: 'pie',
series: [
{
points: [
{ name: 'Product A', y: 35 },
{ name: 'Product B', y: 28 },
{ name: 'Product C', y: 34 },
{ name: 'Product D', y: 32 }
]
}
],
title: { label: { text: 'Product Distribution' } },
legend: { position: 'right' }
};
const barChartConfig = {
type: 'column',
series: [
{
points: [
{ x: 'Week 1', y: 120 },
{ x: 'Week 2', y: 135 },
{ x: 'Week 3', y: 150 },
{ x: 'Week 4', y: 145 }
]
}
],
title: { label: { text: 'Weekly Performance' } },
xAxis: { label: { text: 'Week' } },
yAxis: { label: { text: 'Sales' } }
};
return (
<div style={{ padding: '20px', maxWidth: '1200px', margin: '0 auto' }}>
<h1>Analytics Dashboard</h1>
<div style={{ marginBottom: '20px', textAlign: 'center' }}>
{Object.keys(metrics).map(metric => (
<button
key={metric}
onClick={() => setSelectedMetric(metric)}
style={{
padding: '8px 16px',
margin: '0 5px',
backgroundColor: selectedMetric === metric ? '#007bff' : '#6c757d',
color: 'white',
border: 'none',
borderRadius: '4px',
cursor: 'pointer'
}}
>
{metrics[metric].title}
</button>
))}
</div>
<div style={{ display: 'flex', flexDirection: 'column', gap: '40px' }}>
<JSC.Chart options={lineChartConfig} style={{ height: '400px' }} />
<div style={{ display: 'grid', gridTemplateColumns: '1fr 1fr', gap: '20px' }}>
<JSC.Chart options={pieChartConfig} style={{ height: '400px' }} />
<JSC.Chart options={barChartConfig} style={{ height: '400px' }} />
</div>
</div>
</div>
);
}
export default AnalyticsDashboard;
Now create an interactive chart with real-time updates:
// src/InteractiveChart.jsx
import React, { useState, useEffect } from 'react';
import JSC from 'jscharting-react';
function InteractiveChart() {
const [data, setData] = useState([
{ x: 'Jan', y: 35 },
{ x: 'Feb', y: 28 },
{ x: 'Mar', y: 34 },
{ x: 'Apr', y: 32 },
{ x: 'May', y: 40 },
{ x: 'Jun', y: 32 }
]);
useEffect(() => {
const interval = setInterval(() => {
setData(prevData =>
prevData.map(point => ({
...point,
y: point.y + Math.floor(Math.random() * 10) - 5
}))
);
}, 2000);
return () => clearInterval(interval);
}, []);
const config = {
type: 'line',
series: [
{
points: data,
defaultPoint: {
marker: {
type: 'circle',
size: 8,
fill: '#5470c6'
}
}
}
],
title: { label: { text: 'Real-time Sales Data' } },
xAxis: { label: { text: 'Month' } },
yAxis: { label: { text: 'Sales' } },
tooltip: { enabled: true },
animation: { enabled: true }
};
return (
<div style={{ padding: '20px', maxWidth: '900px', margin: '0 auto' }}>
<h2>Interactive Real-time Chart</h2>
<JSC.Chart options={config} style={{ height: '500px' }} />
</div>
);
}
export default InteractiveChart;
Update your App.jsx:
// src/App.jsx
import React from 'react';
import AnalyticsDashboard from './AnalyticsDashboard';
import InteractiveChart from './InteractiveChart';
import './App.css';
function App() {
return (
<div className="App">
<AnalyticsDashboard />
<InteractiveChart />
</div>
);
}
export default App;
This example demonstrates:
- Analytics dashboard
- Multiple chart types
- Interactive features
- Real-time updates
- Dynamic data
- Custom styling
Common Issues / Troubleshooting
Chart not displaying: Make sure you've installed both
jscharting-reactandjscharting. The chart requires the JSCharting core library.Configuration not working: Check that the options object follows JSCharting configuration format. Refer to JSCharting documentation for correct structure.
Data not showing: Ensure the series array contains points with proper x and y values. Check that data format matches the chart type requirements.
Styling issues: Customize colors and styles in the configuration object. Use
defaultPointfor point styling andtitle/legendfor layout.Performance: For large datasets, consider data sampling or pagination. JSCharting handles large datasets well, but optimization may be needed for very large datasets.
Events not working: Use the
onprop or event handlers in the configuration to attach event listeners. Check JSCharting event documentation for available events.
Next Steps
Now that you have an advanced understanding of JSCharting React:
- Explore all available chart types
- Learn about advanced configurations
- Implement custom tooltips and formatters
- Add animations and transitions
- Create 3D charts and maps
- Integrate with data APIs
- Learn about other chart libraries
- Check the official repository: https://github.com/jscharting/jscharting-react
Summary
You've successfully integrated JSCharting React into your React application with advanced features including analytics dashboards, real-time charts, and interactive visualizations. JSCharting React provides a powerful solution for creating professional data visualizations with extensive customization options.
SEO Keywords
jscharting-react
React JSCharting
jscharting-react tutorial
React data visualization
jscharting-react installation
React chart library
jscharting-react example
React analytics dashboard
jscharting-react setup
React interactive charts
jscharting-react customization
React chart component
jscharting-react dashboard
React chart visualization
jscharting-react getting started
Top comments (0)