diff --git a/modules/charts_c3/src/Plugin/chart/C3.php b/modules/charts_c3/src/Plugin/chart/C3.php
index b89059155fa1b00a5b9d2d2b016d20cd821cf63e..bde4f43ce4d41158b44ce0ba72d166e51f503700 100644
--- a/modules/charts_c3/src/Plugin/chart/C3.php
+++ b/modules/charts_c3/src/Plugin/chart/C3.php
@@ -45,7 +45,7 @@ class C3 extends AbstractChart {
     $attachmentCount = count($attachmentDisplayOptions);
     $noAttachmentDisplays = $attachmentCount === 0;
     $types = [];
-    
+
     for ($i = 1; $i <= $attachmentCount; $i++) {
       if ($attachmentDisplayOptions[$i - 1]['style']['options']['type'] == 'column') {
         $types[$seriesData[$i]['name']] = 'bar';
diff --git a/modules/charts_google/src/Plugin/chart/Google.php b/modules/charts_google/src/Plugin/chart/Google.php
index 3c606d9048c1d64cf71865a651091548a9e3ee51..5c19a823eb705c24d052b8275ece212d2690123d 100644
--- a/modules/charts_google/src/Plugin/chart/Google.php
+++ b/modules/charts_google/src/Plugin/chart/Google.php
@@ -332,7 +332,7 @@ class Google extends AbstractChart {
     $googleOptions->setHorizontalAxes($hAxes);
 
     if (in_array('donut', $chartSelected)) {
-      $googleOptions->pieHole = '0.5';
+      $googleOptions->pieHole = '0.25';
     }
 
     $chartArea = new ChartArea();
@@ -357,10 +357,29 @@ class Google extends AbstractChart {
       $chartArea->setPaddingLeft($options['chart_area']['left']);
     }
 
+    $seriesCount = count($seriesData);
+    $categoriesCount = count($seriesData[0]['data']);
+
     $seriesColors = [];
-    for ($i = 0; $i < count($seriesData); $i++) {
-      $seriesColor = $seriesData[$i]['color'];
-      array_push($seriesColors, $seriesColor);
+    if ($options['type'] == 'pie' || $options['type'] == 'donut') {
+      if ($seriesCount > 1) {
+        for ($i = 0; $i < $seriesCount; $i++) {
+          $seriesColor = $seriesData[$i]['color'];
+          array_push($seriesColors, $seriesColor);
+        }
+      }
+      else {
+        for ($i = 0; $i < $categoriesCount; $i++) {
+          // Use default colors if only one series.
+          $seriesColor = $options['colors'][$i];
+          array_push($seriesColors, $seriesColor);
+        }
+      }
+    } else {
+      for ($i = 0; $i < $seriesCount; $i++) {
+        $seriesColor = $seriesData[$i]['color'];
+        array_push($seriesColors, $seriesColor);
+      }
     }
     $googleOptions->setColors($seriesColors);