Interactive Charts with Chart.js - e-dimensionz Inc (2024)

Chart.js is a versatile and user-friendly JavaScript library that allows developers to create a wide variety of charts and graphs with minimal effort. Since its introduction, Chart.js has gained immense popularity due to its simplicity, flexibility, and ability to deliver visually appealing charts without requiring extensive coding knowledge..

Installation Process

Using npm

If you're working on a project that uses Node.js, you can install Chart.js via npm by running the following command in your terminal:

npm install chart.js

After installation, you can import Chart.js into your project like this:

import { Chart } from 'chart.js';

Using CDN

If you prefer not to install any additional packages, you can use a Content Delivery Network (CDN) to include Chart.js in your project. Simply add the following<script> tag to your HTML file:

<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>

Manual Download

You can download the Chart.js library from the official website and include it directly in your project. After downloading, link the chart.min.js file in your HTML like this:

<script src="/path/to/chart.min.js"></script>

Basic Setup: Creating a Simple HTML File

To get started with Chart.js, create a basic HTML file and link the library. This simple setup will allow you to create and display your first chart.

  1. Create a new HTML file, e.g., index.html, and open it in your text editor.
  2. Add the following boilerplate code:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Chart.js Example</title></head><body> <canvas id="myChart" width="400" height="400"></canvas> <script src="https://cdn.jsdelivr.net/npm/chart.js"></script> <script> // Your Chart.js code will go here </script></body></html>

The <canvas> element with the id="myChart" is where your chart will be rendered. The <script> tag links the Chart.js library using a CDN.

Creating Your First Chart

A Chart.js chart is composed of several key components that work together to create a visual representation of data. The three essential elements are:

  1. Data: This is the dataset that you want to visualize. It consists of values that will be plotted on the chart.
  2. Labels: These are the descriptions or categories associated with each data point. They are typically displayed on the axes of the chart.
  3. Options: This component allows you to customize the appearance and behaviour of your chart. You can control aspects such as the chart’s title, scales, colours, and more.

Code Snippet: Creating a Simple Bar Chart

Here’s a basic example of how to create a bar chart using Chart.js. This example will visualize sales data for different products:

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Simple Bar Chart with Chart.js</title></head><body> <canvas id="myBarChart" width="400" height="400"></canvas> <script src="https://cdn.jsdelivr.net/npm/chart.js"></script> <script> const ctx = document.getElementById('myBarChart').getContext('2d'); const myBarChart = new Chart(ctx, { type: 'bar', // Specify the type of chart data: { labels: ['Product A', 'Product B', 'Product C', 'Product D'], // X-axis labels datasets: [{ label: 'Sales', // Label for the dataset data: [12, 19, 3, 5], // Data points backgroundColor: [ 'rgba(75, 192, 192, 0.2)', 'rgba(54, 162, 235, 0.2)', 'rgba(255, 206, 86, 0.2)', 'rgba(153, 102, 255, 0.2)' ], borderColor: [ 'rgba(75, 192, 192, 1)', 'rgba(54, 162, 235, 1)', 'rgba(255, 206, 86, 1)', 'rgba(153, 102, 255, 1)' ], borderWidth: 1 // Width of the bar borders }] }, options: { scales: { y: { beginAtZero: true // Ensures the Y-axis starts at zero } } } }); </script></body></html>
  • Labels: In this example, the labels array defines the categories that will be displayed along the X-axis of the bar chart. Each label corresponds to a different product—Product A, Product B, Product C, and Product D.

  • Data: The data array within the datasets object represents the sales figures for each product. Each value in this array corresponds to a bar in the chart. For example, the first value 12 represents the sales for Product A, the second value 19 represents the sales for Product B, and so on.

  • Options: The options object allows you to configure various aspects of the chart. In this example, we’ve specified that the Y-axis (y) should begin at zero by setting beginAtZero: true. This ensures that the bars start from the baseline, providing a clear comparison between the data points.

The backgroundColor and borderColor arrays define the colours of the bars and their borders, respectively. Each bar has a corresponding colour, making it easy to distinguish between the different products.

Adding Interactivity

One of the standout features of Chart.js is its ability to create interactive charts that respond to user actions. These interactions can range from simple tooltips that display data values when hovering over a chart element, to more complex behaviours like clickable chart elements that trigger specific actions.

Adding tooltips to your charts

Tooltips are small, floating boxes that appear when a user hovers over a chart element, providing additional information about that element. Chart.js includes tooltip functionality by default, but you can customize the appearance and behaviour of tooltips to better fit your needs.

Code Snippet: Customizing Tooltips

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Chart.js with Custom Tooltips</title></head><body> <canvas id="myTooltipChart" width="400" height="400"></canvas> <script src="https://cdn.jsdelivr.net/npm/chart.js"></script> <script> const ctx = document.getElementById('myTooltipChart').getContext('2d'); const myTooltipChart = new Chart(ctx, { type: 'bar', data: { labels: ['January', 'February', 'March', 'April'], datasets: [{ label: 'Sales', data: [10, 20, 15, 25], backgroundColor: 'rgba(75, 192, 192, 0.2)', borderColor: 'rgba(75, 192, 192, 1)', borderWidth: 1 }] }, options: { tooltips: { enabled: true, // Enable or disable tooltips mode: 'index', // Display tooltips for all data points on the X-axis backgroundColor: 'rgba(0, 0, 0, 0.7)', // Tooltip background color titleFontColor: '#ffffff', // Tooltip title color bodyFontColor: '#ffffff', // Tooltip body color callbacks: { label: function(tooltipItem, data) { return `Sales: $${tooltipItem.yLabel}k`; // Custom tooltip label } } }, scales: { y: { beginAtZero: true } } } }); </script></body></html>

In this example, tooltips are enabled by default. The mode: 'index' option ensures that all data points on the X-axis are shown in the tooltip when hovering over a bar. The callbacks object allows you to customize the text displayed in the tooltip. Here, the sales data is formatted to show a dollar sign and "k" to represent thousands. You can further customize the tooltip's appearance, including its colours and font styles.

Implementing Clickable Elements (Events) Within the Chart

Chart.js allows you to make chart elements clickable, which can be particularly useful for creating interactive dashboards or linking to more detailed data views. By using Chart.js events, you can trigger specific actions when a user clicks on a chart element.

Code Snippet: Making Chart Elements Clickable

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Clickable Elements in Chart.js</title></head><body> <canvas id="myClickableChart" width="400" height="400"></canvas> <script src="https://cdn.jsdelivr.net/npm/chart.js"></script> <script> const ctx = document.getElementById('myClickableChart').getContext('2d'); const myClickableChart = new Chart(ctx, { type: 'bar', data: { labels: ['Q1', 'Q2', 'Q3', 'Q4'], datasets: [{ label: 'Revenue', data: [30, 50, 40, 60], backgroundColor: 'rgba(255, 99, 132, 0.2)', borderColor: 'rgba(255, 99, 132, 1)', borderWidth: 1 }] }, options: { onClick: function(event, elements) { if (elements.length) { const datasetIndex = elements[0]._datasetIndex; const dataIndex = elements[0]._index; const label = this.data.labels[dataIndex]; const value = this.data.datasets[datasetIndex].data[dataIndex]; alert(`You clicked on ${label}: ${value}k in revenue`); } }, scales: { y: { beginAtZero: true } } } }); </script></body></html>

In this example, we’ve added an onClick event listener to the chart. When a user clicks on a bar, the chart identifies the dataset and data index corresponding to the clicked element. This information is then used to display an alert showing the label and value of the clicked bar. This basic setup can be extended to trigger more complex actions, such as navigating to a different page or displaying additional data.

Using Animations

Animations are another powerful feature in Chart.js that can make your charts more dynamic and engaging. You can control how charts are drawn on the screen, adding a sense of movement and guiding the user’s attention.

Code Snippet: Adding Animations

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Chart.js with Animations</title></head><body> <canvas id="myAnimatedChart" width="400" height="400"></canvas> <script src="https://cdn.jsdelivr.net/npm/chart.js"></script> <script> const ctx = document.getElementById('myAnimatedChart').getContext('2d'); const myAnimatedChart = new Chart(ctx, { type: 'line', data: { labels: ['Week 1', 'Week 2', 'Week 3', 'Week 4'], datasets: [{ label: 'Website Traffic', data: [200, 400, 300, 500], backgroundColor: 'rgba(54, 162, 235, 0.2)', borderColor: 'rgba(54, 162, 235, 1)', borderWidth: 2, fill: false }] }, options: { animation: { duration: 2000, // Animation duration in milliseconds easing: 'easeInOutBounce', // Easing function for the animation onProgress: function(animation) { console.log(`Animation progress: ${animation.currentStep / animation.numSteps * 100}%`); }, onComplete: function(animation) { console.log('Animation complete!'); } }, scales: { y: { beginAtZero: true } } } }); </script></body></html>

In this example, we’ve added an animation object to the chart’s options. The duration property controls how long the animation lasts, and the easing property determines the type of animation curve used. The onProgress and onComplete functions allow you to execute code at different stages of the animation, providing opportunities for further interactivity or logging.

Customizing Your Charts

Chart.js offers a wide range of customization options that allow you to tailor your charts to fit the specific design and branding needs of your project. From adjusting colours and fonts to adding titles and legends, these customization features enable you to create charts that are not only functional but also visually appealing.

Changing Colours, Fonts, and Styles

Customizing the appearance of your charts is one of the easiest ways to align them with your website’s design. You can change the colours of the chart elements, adjust fonts, and modify the overall style to match your preferences.

Code Snippet: Customizing Colours and Fonts

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Customizing Chart.js Colors and Fonts</title></head><body> <canvas id="myCustomChart" width="400" height="400"></canvas> <script src="https://cdn.jsdelivr.net/npm/chart.js"></script> <script> const ctx = document.getElementById('myCustomChart').getContext('2d'); const myCustomChart = new Chart(ctx, { type: 'line', data: { labels: ['January', 'February', 'March', 'April'], datasets: [{ label: 'Visitors', data: [100, 150, 130, 170], backgroundColor: 'rgba(255, 159, 64, 0.2)', // Background color borderColor: 'rgba(255, 159, 64, 1)', // Border color borderWidth: 3, // Width of the line pointBackgroundColor: 'rgba(75, 192, 192, 1)', // Point color pointBorderColor: '#fff', // Point border color pointBorderWidth: 2 // Width of the point border }] }, options: { scales: { x: { ticks: { font: { size: 14, // Font size for X-axis labels family: 'Arial', // Font family for X-axis labels weight: 'bold' // Font weight for X-axis labels } } }, y: { beginAtZero: true, ticks: { font: { size: 14, // Font size for Y-axis labels family: 'Arial', // Font family for Y-axis labels weight: 'bold' // Font weight for Y-axis labels } } } }, plugins: { legend: { labels: { font: { size: 16, // Font size for legend labels family: 'Verdana', // Font family for legend labels weight: 'bold' // Font weight for legend labels }, color: 'rgba(255, 99, 132, 1)' // Font color for legend labels } } } } }); </script></body></html>

In this example, we’ve customized several aspects of the chart’s appearance:

  • The backgroundColor and borderColor properties control the colour of the line and its fill. You can use rgba() values for transparency effects.
  • The pointBackgroundColor and pointBorderColor properties define the colour of the points on the line chart, allowing for further customization.
  • The font property within the ticks object allows you to change the font size, family, and weight for the labels on both the X and Y axes.
  • The legend plugin is used to style the legend labels, including their font and colour, enhancing the chart’s readability and visual appeal.

Adding Legends and Titles to Improve Chart Readability

Legends and titles make your charts easy to understand. Titles provide context, while legends explain the meaning of different data representations within the chart.

Code Snippet: Adding Titles and Legends

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Chart.js with Titles and Legends</title></head><body> <canvas id="myChartWithTitle" width="400" height="400"></canvas> <script src="https://cdn.jsdelivr.net/npm/chart.js"></script> <script> const ctx = document.getElementById('myChartWithTitle').getContext('2d'); const myChartWithTitle = new Chart(ctx, { type: 'bar', data: { labels: ['Q1', 'Q2', 'Q3', 'Q4'], datasets: [{ label: 'Revenue', data: [25000, 30000, 20000, 35000], backgroundColor: 'rgba(75, 192, 192, 0.2)', borderColor: 'rgba(75, 192, 192, 1)', borderWidth: 1 }] }, options: { plugins: { title: { display: true, // Display the chart title text: 'Quarterly Revenue', // Text for the title font: { size: 18, // Font size for the title family: 'Helvetica', // Font family for the title weight: 'bold' // Font weight for the title }, color: '#333' // Color for the title text }, legend: { display: true, // Display the legend position: 'top', // Position the legend at the top of the chart labels: { font: { size: 14, // Font size for legend labels family: 'Helvetica', // Font family for legend labels weight: 'bold' // Font weight for legend labels }, color: '#333' // Color for legend labels } } }, scales: { y: { beginAtZero: true } } } }); </script></body></html>

In this example, we’ve added a title and customized the legend:

  • The title plugin is used to display a title at the top of the chart. You can customize the text, font, and colour to match your design needs.
  • The legend plugin positions the legend at the top of the chart and customizes the font and colour of the legend labels. The position property can be set to different values such as 'top', 'bottom', 'left', or 'right' to position the legend as desired.

Advanced Features

Chart.js is a powerful library on its own, but its functionality can be further extended through the use of plugins. Plugins allow you to add new features, modify existing behaviours, or customize your charts in ways that aren't possible with the core library alone. There are many community-developed plugins available that can add everything from additional chart types to advanced interactions and animations.

Example of Integrating a Plugin: Chart.js Plugin Datalabels

One popular plugin ischartjs-plugin-datalabels, which allows you to display labels on your chart data points. This can be especially useful for adding annotations or showing exact values directly on the chart.

Code Snippet: Integrating chartjs-plugin-datalabels

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Chart.js with Datalabels Plugin</title></head><body> <canvas id="myChartWithDatalabels" width="400" height="400"></canvas> <script src="https://cdn.jsdelivr.net/npm/chart.js"></script> <script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels"></script> <script> const ctx = document.getElementById('myChartWithDatalabels').getContext('2d'); const myChartWithDatalabels = new Chart(ctx, { type: 'pie', data: { labels: ['Red', 'Blue', 'Yellow', 'Green'], datasets: [{ data: [300, 50, 100, 150], backgroundColor: [ 'rgba(255, 99, 132, 0.6)', 'rgba(54, 162, 235, 0.6)', 'rgba(255, 206, 86, 0.6)', 'rgba(75, 192, 192, 0.6)' ] }] }, options: { plugins: { datalabels: { color: '#ffffff', // Text color for data labels font: { size: 16, // Font size for data labels weight: 'bold' // Font weight for data labels }, formatter: (value, context) => { return `${value}%`; // Customize the label format } } } } }); </script></body></html>

In this example, we’ve integrated the chartjs-plugin-datalabels plugin, which automatically adds labels to each segment of a pie chart. The plugin is included via a CDN, and it’s configured in the options.plugins.datalabels section. The formatter function allows you to customize how the labels are displayed, such as adding a percentage sign to the values.

Handling Large Datasets with Chart.js

When working with large datasets, performance can become a concern. Chart.js is optimized for speed, but as the number of data points increases, the rendering time can slow down, affecting the user experience. Fortunately, there are several strategies you can use to handle large datasets efficiently.

  1. Reduce the Number of Data Points: If possible, aggregate or downsample your data to reduce the number of points plotted on the chart. This can significantly improve rendering times.
  2. Lazy Loading and Pagination: Instead of loading all data points at once, consider implementing lazy loading or pagination. Load and display data in chunks as the user interacts with the chart.
  3. Disable Animations: While animations can enhance the user experience, they can also add overhead. Disabling animations for large datasets can improve performance.
  4. Use the decimation Plugin: Chart.js includes a built-in decimation plugin that can automatically reduce the number of points plotted by averaging or filtering data points.

Code Snippet: Using the Decimation Plugin

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Chart.js with Decimation Plugin</title></head><body> <canvas id="myLargeDatasetChart" width="400" height="400"></canvas> <script src="https://cdn.jsdelivr.net/npm/chart.js"></script> <script> const ctx = document.getElementById('myLargeDatasetChart').getContext('2d'); const data = Array.from({ length: 10000 }, () => Math.floor(Math.random() * 100)); // Simulate a large dataset const myLargeDatasetChart = new Chart(ctx, { type: 'line', data: { labels: data.map((_, i) => `Point ${i + 1}`), datasets: [{ label: 'Large Dataset', data: data, backgroundColor: 'rgba(54, 162, 235, 0.2)', borderColor: 'rgba(54, 162, 235, 1)', borderWidth: 1 }] }, options: { plugins: { decimation: { enabled: true, algorithm: 'min-max', // Use the min-max algorithm for decimation } }, scales: { y: { beginAtZero: true } } } }); </script></body></html>

In this example, we’ve enabled the decimation plugin with the min-max algorithm. This algorithm keeps the minimum and maximum points within each decimated chunk of data, which helps retain important trends in the data while reducing the total number of points plotted. This can dramatically improve the chart's performance, especially with large datasets.

Best Practices for Using Chart.js

Creating user-friendly interactive charts involves more than just displaying data; it’s about presenting information in a way that is easy to understand and engaging for the user.

  • Keep It Simple:
    Avoid cluttering your charts with too much information. Focus on the most important data points and use clear labels and legends. Simplicity helps users quickly grasp the meaning of the chart.
  • Use Appropriate Chart Types:
    Choose the right type of chart for the data you’re displaying. For example, use bar charts for comparisons, line charts for trends over time, and pie charts for showing proportions. Using the appropriate chart type ensures that your data is communicated effectively.
  • Leverage Interactivity:
    Enhance user engagement by adding interactive elements like tooltips, clickable data points, and animations. These features can help users explore the data more deeply without overwhelming them.
  • Maintain Consistency:
    Use consistent colours, fonts, and styles across all your charts to create a cohesive visual experience. Consistency helps users focus on the data rather than being distracted by varying design elements.
  • Ensure Accessibility:
    Make sure your charts are accessible to all users, including those with disabilities. Use high-contrast colours, provide text alternatives for visual data, and ensure that your charts are navigable with keyboard and screen readers.
  • Optimize for Performance:
    When working with large datasets or complex visualizations, optimize your charts for performance. Reduce the number of data points, disable unnecessary animations, and use the decimation plugin to improve rendering times.

Common Pitfalls to Avoid

While Chart.js is a powerful tool, there are some common pitfalls to be aware of when designing charts:

  • Overloading Charts with Data:
    Cramming too much data into a single chart can make it difficult to interpret. Instead, consider breaking down the data into multiple charts or summarizing the key points.
  • Ignoring Responsiveness:
    Failing to make your charts responsive can result in a poor user experience on different devices. Ensure your charts look good on both desktop and mobile screens by using Chart.js’s built-in responsiveness features.
  • Misleading Visuals:
    Be careful not to create misleading charts by manipulating scales, omitting relevant data, or using inappropriate chart types. Always aim for accuracy and honesty in your data representation.
  • Neglecting Accessibility:
    Ignoring accessibility considerations can exclude a portion of your audience. Make sure your charts are accessible to everyone by following best practices for colour contrast, screen reader compatibility, and keyboard navigation.
  • Overusing Animations:
    While animations can make charts more engaging, overusing them can be distracting or even annoying for users. Use animations sparingly and ensure they serve a purpose, such as drawing attention to key data points.

Resources for Further Learning

Interactive Charts with Chart.js - e-dimensionz Inc (2024)

FAQs

Who owns chart JS? ›

Created by London-based web developer Nick Downie in 2013, now it is maintained by the community and is the second most popular JavaScript charting library on GitHub by the number of stars after D3.

What is chart.js used for? ›

Chart.js is a free JavaScript library for making HTML-based charts. It is one of the simplest visualization libraries for JavaScript, and comes with the following built-in chart types: Scatter Plot. Line Chart.

Is Chart.js free for commercial use? ›

Js (Free) Chart. js is an open-source JavaScript library that comes with eight different types of charts.

Who uses ChartJS? ›

Companies Currently Using Chart.js
Company NameWebsiteSub Level Industry
Fractal Analyticsfractal.aiSoftware Development & Technical Consulting
CAESARS ENTERTAINMENTcaesars.comLodging & Resorts
Utah Education Networkuen.orgSoftware Manufacturers
Customorecustomore.comAdvertising, Marketing & Public Relations
2 more rows

Who bought js? ›

Trademark. "JavaScript" is a trademark of Oracle Corporation in the United States. The trademark was originally issued to Sun Microsystems on 6 May 1997, and was transferred to Oracle when they acquired Sun in 2009.

When was Chart.js created? ›

Chart.js was created and announced in 2013 but has come a long way since then. It's open-source, licensed under the very permissive MIT license , and maintained by an active community.

What can charts be used for? ›

The main functions of a chart are to display data and invite further exploration of a topic. Charts are used in situations where a simple table won't adequately demonstrate important relationships or patterns between data points.

What is the difference between Google charts and chart JS? ›

js is supported by all modern browsers and handles gracefully even in older versions. It is built using HTML5 Canvas, which offers excellent performance across different browsers. Google Charts, on the other hand, may have limited compatibility with older browsers and may require additional dependencies or polyfills.

What is the advantage of chart JS? ›

Chart. js is a free, open-source JavaScript library for data visualization, which supports eight chart types: bar, line, area, pie, bubble, radar, polar and scatter. It's licensed under the permissive MIT license and is renowned for being flexible, lightweight, easy to use and extendible.

What is similar to chart JS? ›

The best overall Chart. Js alternative is Highcharts. Other similar apps like Chart. Js are Syncfusion Essential Studio Enterprise Edition, FusionCharts, amCharts, and Looker Studio.

How to create chart using Chartjs? ›

We just need to provide a chart type ( bar ) and provide data which consists of labels (often, numeric or textual descriptions of data points) and an array of datasets (Chart.js supports multiple datasets for most chart types). Each dataset is designated with a label and contains an array of data points.

Is Chartjs open source? ›

Chart. js is an open-source JavaScript visualization library that started in 2013 and, over time, has ranked as the most popular charting library according to GitHub stars and npm downloads.

Which tool should you use to make interactive online charts? ›

Google Charts is a powerful, free data visualization tool that is specifically for creating interactive charts for embedding online.

Which chart is mostly used? ›

Bar charts are great for comparison. The differences in bar length are easier to perceive, than, for example, differences in size and color. Bar charts are commonly used charts due to their simplicity. Viewers mostly need to decode their bars' length and position, making bar charts very easy to understand.

What is the best chart to use? ›

Bar charts are good for comparisons, while line charts work better for trends. Scatter plot charts are good for relationships and distributions, but pie charts should be used only for simple compositions — never for comparisons or distributions.

Who is the parent company of Highcharts? ›

Highsoft, the company behind Highcharts, is located in Vik i Sogn, Norway.

Who is the founder of chart? ›

The first known bar charts are usually attributed to Nicole Oresme, Joseph Priestley, and William Playfair. A pie chart shows percentage values as a slice of a pie; first introduced by William Playfair.

Who owns official charts company? ›

The Official Charts are charged with this mission by the UK's entertainment industry - we are owned by two industry associations, the Era, the digital entertainment and retailers association, and the British Phonographic Industry (BPI), which represent the nation's streaming services and retailers on the one hand and ...

Who owns js Industries? ›

JASON STEVENSON.

Jason Stevenson (founder, owner and shaper) has built the company from ground up and his talents and love of surfing have gained him global recognition and some strong relationships with a world class team of loyal surfers.

Top Articles
Latest Posts
Article information

Author: Wyatt Volkman LLD

Last Updated:

Views: 5844

Rating: 4.6 / 5 (46 voted)

Reviews: 93% of readers found this page helpful

Author information

Name: Wyatt Volkman LLD

Birthday: 1992-02-16

Address: Suite 851 78549 Lubowitz Well, Wardside, TX 98080-8615

Phone: +67618977178100

Job: Manufacturing Director

Hobby: Running, Mountaineering, Inline skating, Writing, Baton twirling, Computer programming, Stone skipping

Introduction: My name is Wyatt Volkman LLD, I am a handsome, rich, comfortable, lively, zealous, graceful, gifted person who loves writing and wants to share my knowledge and understanding with you.