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);