diff --git a/charts.install b/charts.install
index ed6529d4cd1e0372be0747de8297566b8d644f45..bd42a90369d608b1cbc2e857935cb6234bb13f89 100644
--- a/charts.install
+++ b/charts.install
@@ -1,4 +1,5 @@
 <?php
+
 /**
  * @file
  * Install and update functions for the Charts module.
diff --git a/modules/charts_api_example/charts_api_example.links.menu.yml b/modules/charts_api_example/charts_api_example.links.menu.yml
new file mode 100644
index 0000000000000000000000000000000000000000..0caceeefefdec43c71fe1dc7c146dcb54fbaa690
--- /dev/null
+++ b/modules/charts_api_example/charts_api_example.links.menu.yml
@@ -0,0 +1,5 @@
+charts_api_example.display:
+  title: 'Charts API example'
+  description: 'Displays a chart rendered using the API.'
+  parent: system.admin_config_content
+  route_name: charts_api_example.display
diff --git a/modules/charts_c3/src/Charts/C3ChartsRender.php b/modules/charts_c3/src/Charts/C3ChartsRender.php
index c89cd31e711c2806fda3825db38647f5ee7260a5..9a40154eee36435e2008b99cf7d9a90df788baa7 100644
--- a/modules/charts_c3/src/Charts/C3ChartsRender.php
+++ b/modules/charts_c3/src/Charts/C3ChartsRender.php
@@ -74,22 +74,27 @@ class C3ChartsRender implements ChartsRenderInterface {
       array_unshift($categories, 'x');
       array_push($c3Data, $categories);
       $chartData->setColumns($c3Data);
-    } else {
-      if ($options['type'] == 'column') {
-        $chartData->setType('bar');
-        $chartAxis->setRotated(FALSE);
-        array_unshift($categories, 'x');
-        array_push($c3Data, $categories);
-        $chartData->setColumns($c3Data);
-      } else {
-        array_unshift($categories, 'x');
-        array_push($c3Data, $categories);
-        $chartData->setColumns($c3Data);
-      }
+    }
+    else if ($options['type'] == 'column') {
+      $chartData->setType('bar');
+      $chartAxis->setRotated(FALSE);
+      array_unshift($categories, 'x');
+      array_push($c3Data, $categories);
+      $chartData->setColumns($c3Data);
+    }
+    else if ($options['type'] == 'pie') {
+      $chartData->setColumns($c3Data);
+    }
+    else {
+      array_unshift($categories, 'x');
+      array_push($c3Data, $categories);
+      $chartData->setColumns($c3Data);
     }
     $chartData->types = $types;
 
-    $c3->setAxis($chartAxis);
+    if ($options['type'] != 'pie') {
+      $c3->setAxis($chartAxis);
+    }
 
     $chartColor = new ChartColor();
     $seriesColors = [];
diff --git a/modules/charts_c3/src/Settings/CThree/ChartData.php b/modules/charts_c3/src/Settings/CThree/ChartData.php
index 017c050f3a84b2d1fdad80b9f8107b9af6f835ea..0870037d29a36377e3bc83f299a6576780722374 100644
--- a/modules/charts_c3/src/Settings/CThree/ChartData.php
+++ b/modules/charts_c3/src/Settings/CThree/ChartData.php
@@ -70,6 +70,10 @@ class ChartData implements \JsonSerializable {
   public function jsonSerialize() {
     $vars = get_object_vars($this);
 
+    if ($vars['type'] == 'pie') {
+      unset($vars['x']);
+    }
+
     return $vars;
   }