1. 使用ファイル |2. 基本的な作り方 |3. サンプル
amCharts 4(非商用使用-フリー/商用使用-有料)は、洗練されたデザイン性に豊富な機能を有するグラフ描画ライブラリです。
amCharts 4の円グラフは、データラベルやラベルなどを円の外側に綺麗に表示してくれます。
amCharts 4は、グラフを描画するコードスニペットの構文に、つぎの3つのコンポーネントを使用することができます。
amChartsファイルは、 amChartsのCDNサイトを使用すると、ダウンロードが不要になります。
円グラフの基本的な作り方はつぎのとおりです。
core.jsおよびcharts.jsは、必ずインクルードします。
その他テーマファイル(themes)のカラーテーマ(スライスおよび凡例)および
アニメーションテーマは、使用時にインクルードします(下サンプル項で説明)。
//amCharts jsファイル core.js:基本的な機能のメインモジュール chart.js:チャート描画モジュール(必須) <script src="//www.amcharts.com/lib/4/core.js"></script> <script src="//www.amcharts.com/lib/4/charts.js"></script> //スライスおよび凡例のカラーテーマ(任意) <script src="https://www.amcharts.com/lib/4/themes/kelly.js"></script> //アニメーションテーマ(任意) <script src="https://www.amcharts.com/lib/4/themes/animated.js"></script>
DIVタグのid名は任意で、必要に応じてCSSでグラフ描画領域のサイズ(width,height)やフォントサイズを指定します(フォントカラーは無効)。
Javascriptは、グラフ描画DIV域の後に配置します(重要)。
<!-- グラフ描写域 CSS HTML -->
<style>
#chartdiv {
width: 95%;
height: 500px;
padding:20px;
/* font-size:12px; グラフ内の文字の大きさ(タイトルを除く)指定可 */
/* font-weight:bold; グラフ内の文字の太さ 指定可 */
}
</style>
<!-- グラフ描写域 HTML -->
<div id="chartdiv"></div>
<!-- グラフ描写 javascript -->
<script>
// グラフインスタンスの生成 Create chart instance
var chart = am4core.create("chartdiv", am4charts.PieChart);
グラフデータ定義のカテゴリー(データ)のラベル名の項目名("職業")およびデータの値の項目名("人数")は任意で、その下のシリーズ定義で記述し対応させます。
カテゴリー(データ)のラベル名およびデータの値を合せて、データラベルと言います(下(7)項参照)。
グラフデータは、CSVファイルも使用できます。
// グラフデータ定義 Add data
chart.data = [{
"職業": "大学教授・研究者", "人数": 264
}, {
"職業": "医師", "人数": 197
・・・
}];
// シリーズ定義 Add and configure Series, reating a series, Regular Pie chart
var pieSeries = chart.series.push(new am4charts.PieSeries()); //シリーズ生成
pieSeries.dataFields.value = "人数"; //Setting up series 値
pieSeries.dataFields.category = "職業"; //Setting up series カテゴリ
凡例は、表示位置を指定できます。それらの値は、 "left", "right", "top", "bottom" (default)です。
また、凡例を下(bottom)に置く場合、グラフと間隔を取りたいときは、上にマージン(chart.legend.marginTop)を取ることができます。
タイトルは、上部に表示されます。タイトルの上下のマージンを指定できます。
//凡例表示 add legend
chart.legend = new am4charts.Legend();
chart.legend.position = "bottom";
chart.legend.marginTop = 50; //グラフとのマージン(間隔)をとる、上に50pxのマージン
//タイトル生成 create title
var title = chart.titles.create();
title.text = "(beランキング)生まれ変わったら就きたい職業 夢あるようで、ないようで…TOP 10";
title.fontSize = 18;
title.marginBottom = 10; //タイトルの上のマージン。下は、chart.legend.marginBottom
</script>
(1)~(7)いままでの作り方をまとめた基本的な円グラフのHTMLコードとサンプルデモを下に示します。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>amCharts V4 円グラフ 基本サンプル Example regular pie chart </title> <!-- Importing modules/scriptsFor a Pie chart, import core (main module) and charts modules. CDNサイト --> <script src="//www.amcharts.com/lib/4/core.js"></script> <script src="//www.amcharts.com/lib/4/charts.js"></script> <!-- グラフ描写域 CSS HTML --> <style> #chartdiv { width: 95%; height: 500px; padding:20px; /* font-size:12px; グラフ内の文字の大きさ(タイトルを除く)指定可 */ /* font-weight:bold; グラフ内の文字の太さ 指定可 */ } </style> </head> <body> <!-- 描写DIV域 --> <div id="chartdiv"></div> <!-- amcharts グラフ描写 javascript, 描写DIV域より後に置く --> <script> // グラフ生成インスタンス Create chart instance var chart = am4core.create("chartdiv", am4charts.PieChart); // グラフデータ Add data chart.data = [ { "職業": "大学教授・研究者", "人数": 264 }, { "職業": "医師", "人数": 197 }, { "職業": "小説家", "人数": 179 }, { "職業": "大工など職人", "人数": 153 }, { "職業": "公務員(行政職)", "人数": 150 }, { "職業": "学芸員", "人数": 145 }, { "職業": "歌手・ミュージシャン", "人数": 137 }, { "職業": "パイロット", "人数": 137 }, { "職業": "ジャーナリスト・編集者", "人数": 130 }, { "職業": "俳優", "人数": 128 } ]; // シリーズ定義 Add and configure Series var pieSeries = chart.series.push(new am4charts.PieSeries()); //グラフ生成 Creating a series, Regular Pie chart pieSeries.dataFields.value = "人数"; //Setting up series 値 pieSeries.dataFields.category = "職業"; //Setting up series カテゴリ //凡例表示 add legend chart.legend = new am4charts.Legend(); chart.legend.position = "bottom"; chart.legend.marginTop = 50; chart.legend.marginBottom = 20; //タイトル create title var title = chart.titles.create(); title.text = "(beランキング)生まれ変わったら就きたい職業 夢あるようで、ないようで…TOP 10"; title.fontSize = 18; title.marginBottom = 10; </script> </body> </html>
サンプルグラフは、下表のとおり円グラフおよびドーナッツグラフの8種類になります。
基本的な円グラフに、つぎの機能を追加カスタマイズします。
以下のカスタマイズは、基本的な円グラフのHTMLソースコードに対して追加・修正を行います。
▼基本的な円グラフのHTMLソースコード(基本的な円グラフのまとめの項より)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>amCharts V4 円グラフ 基本サンプル Example regular pie chart </title> <!-- Importing modules/scriptsFor a Pie chart, import core (main module) and charts modules. CDNサイト --> <script src="//www.amcharts.com/lib/4/core.js"></script> <script src="//www.amcharts.com/lib/4/charts.js"></script> <!-- グラフ描写域 CSS HTML --> <style> #chartdiv { width: 95%; height: 500px; padding:20px; /* font-size:12px; グラフ内の文字の大きさ(タイトルを除く)指定可 */ /* font-weight:bold; グラフ内の文字の太さ 指定可 */ } </style> </head> <body> <!-- 描写DIV域 --> <div id="chartdiv"></div> <!-- amcharts グラフ描写 javascript, 描写DIV域より後に置く --> <script> // グラフ生成インスタンス Create chart instance var chart = am4core.create("chartdiv", am4charts.PieChart); // グラフデータ Add data chart.data = [ { "職業": "大学教授・研究者", "人数": 264 }, { "職業": "医師", "人数": 197 }, { "職業": "小説家", "人数": 179 }, { "職業": "大工など職人", "人数": 153 }, { "職業": "公務員(行政職)", "人数": 150 }, { "職業": "学芸員", "人数": 145 }, { "職業": "歌手・ミュージシャン", "人数": 137 }, { "職業": "パイロット", "人数": 137 }, { "職業": "ジャーナリスト・編集者", "人数": 130 }, { "職業": "俳優", "人数": 128 } ]; // シリーズ定義 Add and configure Series var pieSeries = chart.series.push(new am4charts.PieSeries()); //グラフ生成 Creating a series, Regular Pie chart pieSeries.dataFields.value = "人数"; //Setting up series 値 pieSeries.dataFields.category = "職業"; //Setting up series カテゴリ //凡例表示 add legend chart.legend = new am4charts.Legend(); chart.legend.position = "bottom"; chart.legend.marginTop = 50; chart.legend.marginBottom = 20; //タイトル create title var title = chart.titles.create(); title.text = "(beランキング)生まれ変わったら就きたい職業 夢あるようで、ないようで…TOP 10"; title.fontSize = 18; title.marginBottom = 10; </script> </body> </html>
項番 | サンプルグラフ (クリックして新ウインドウでデモが見れます) |
spec01-1 | spec01-2 | spec01-3 | spec02 | spec03 | spec04 | spec05 | spec06 | spec07 | spec08 | spec09 | spec10 |
3.1 | 円グラフ (regular pie) | 〇 | 〇 | 〇 | 〇 | 〇 | 〇 | 〇 | 〇 | 〇 | 〇 | 〇 | |
3.2 | ドーナッツグラフ (donut) | 〇 | |||||||||||
3.3 | 半円グラフ (Semi circle pie) | ||||||||||||
3.4 | 半ドーナッツグラフ (Semi circle donut) | 〇 | |||||||||||
3.5 | 3D 円グラフ(3D pie) | 〇 | |||||||||||
3.6 | 3D ドーナッツグラフ(3D donut) | ||||||||||||
3.7 | 3D 半円グラフ(3D Semi circle pie) | ||||||||||||
3.8 | 3D 半ドーナッツグラフ(3D Semi circle donut) | ||||||||||||
注記 |
色の設定は、(1) amChartsのカラーテーマ(color theme 7種類)を使用する方法(自動設定 spec01-1)、
(2)基準の色を指定し順次配色するカラーテーマ関数を作る方法(半自動設定 spec01-2)
および (3)オプションのカラーリストで、好みの色を定義する方法(手動設定 spec01-3)があります。
(1) amChartsのカラーテーマ(color theme 7種類)を使用する方法(自動設定 spec01-1)
amCharts用意しているカラーテーマは、つぎに示すとおり7種類あります。
<!- html カラーテーマ kelly.js インクルード -->
<script src="https://www.amcharts.com/lib/4/themes/kelly.js"></script>
// javascript カラーテーマ kelly の設定
am4core.useTheme(am4themes_kelly);
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>amCharts V4 円グラフ Example pie chart spec01-1 </title> <!-- Importing modules/scriptsFor a Pie chart, import core (main module) and charts modules. CDNサイト --> <script src="//www.amcharts.com/lib/4/core.js"></script> <script src="//www.amcharts.com/lib/4/charts.js"></script> <!-- カラーテーマ kelly.js インクルード spec01-1 --> <script src="https://www.amcharts.com/lib/4/themes/kelly.js"></script> <!-- グラフ描写DIV域 CSS --> <style> #chartdiv { width: 800px; height: 500px; } </style> </head> <body> <!-- グラフ描写DIV域 --> <div id="chartdiv"></div> <!-- amcharts グラフ描写 javascript, 描写DIV域より後に置く --> <script> // javascript カラーテーマ kelly の設定 spec01-1 am4core.useTheme(am4themes_kelly); // グラフ生成インスタンス Create chart instance var chart = am4core.create("chartdiv", am4charts.PieChart); // グラフデータ Add data chart.data = [ { "職業": "大学教授・研究者", "人数": 264 }, { "職業": "医師", "人数": 197 }, { "職業": "小説家", "人数": 179 }, { "職業": "大工など職人", "人数": 153 }, { "職業": "公務員(行政職)", "人数": 150 }, { "職業": "学芸員", "人数": 145 }, { "職業": "歌手・ミュージシャン", "人数": 137 }, { "職業": "パイロット", "人数": 137 }, { "職業": "ジャーナリスト・編集者", "人数": 130 }, { "職業": "俳優", "人数": 128 } ]; // シリーズ定義 Add and configure Series var pieSeries = chart.series.push(new am4charts.PieSeries()); //グラフ生成 Creating a series, Regular Pie chart pieSeries.dataFields.value = "人数"; //Setting up series 値 pieSeries.dataFields.category = "職業"; //Setting up series カテゴリ //凡例表示 add legend chart.legend = new am4charts.Legend(); chart.legend.position = "bottom"; chart.legend.marginTop = 20; chart.legend.marginBottom = 20; //タイトル var title = chart.titles.create(); title.text = "(beランキング)生まれ変わったら就きたい職業 … TOP 10"; title.fontSize = 16; title.marginBottom = 10; </script> </body> </html>
(2)基準の1色を指定し順次自動配色するカラーテーマ関数を作る方法(半自動設定 spec01-2)
//自作カラーテーマ関数起動 spec01-2
am4core.useTheme(am4themes_myTheme);
//自作カラーテーマ関数 spec01-2
function am4themes_myTheme(target) {
if (target instanceof am4core.ColorSet) {
target.list = [
am4core.color("red") /* 基準の色指定 */
];
}
}
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>amCharts V4 円グラフ Example pie chart spec01-2 基準の1色を指定し順次自動配色するカラーテーマ関数</title> <!-- Importing modules/scriptsFor a Pie chart, import core (main module) and charts modules. CDNサイト --> <script src="//www.amcharts.com/lib/4/core.js"></script> <script src="//www.amcharts.com/lib/4/charts.js"></script> <!-- グラフ描写DIV域 CSS --> <style> #chartdiv { width: 700px; height: 500px; } </style> </head> <body> <!-- 描写DIV域 --> <div id="chartdiv"></div> <!-- amcharts グラフ描写 javascript, 描写DIV域より後に置く --> <script> // Create chart instance var chart = am4core.create("chartdiv", am4charts.PieChart); //自作カラーテーマ関数起動 spec01-2 am4core.useTheme(am4themes_myTheme); // Add data chart.data = [{ "職業": "大学教授・研究者", "人数": 264 }, { "職業": "医師", "人数": 197 }, { "職業": "小説家", "人数": 179 }, { "職業": "大工など職人", "人数": 153 }, { "職業": "公務員(行政職)", "人数": 150 }, { "職業": "学芸員", "人数": 145 }, { "職業": "歌手・ミュージシャン", "人数": 137 }, { "職業": "パイロット", "人数": 137 }, { "職業": "ジャーナリスト・編集者", "人数": 130 }, { "職業": "俳優", "人数": 128 }]; // シリーズ設定 Add and configure Series var pieSeries = chart.series.push(new am4charts.PieSeries()); //グラフ生成 Creating a series, Regular Pie chart pieSeries.dataFields.value = "人数"; //Setting up series 値 pieSeries.dataFields.category = "職業"; //Setting up series カテゴリ //凡例表示 chart.legend = new am4charts.Legend(); chart.legend.marginBottom = 30; chart.legend.position = "bottom"; //タイトル var title = chart.titles.create(); title.text = "(beランキング)生まれ変わったら就きたい職業 夢あるようで、ないようで…TOP 10"; title.marginBottom = 30; //自作カラーテーマ関数 spec01-2 function am4themes_myTheme(target) { if (target instanceof am4core.ColorSet) { target.list = [ am4core.color("red") /* 基準の色指定 */ ]; } } </script> </body> </html>
(3)オプションのカラーリストで、好みの色を定義する方法(手動設定 spec01-3)
//カラーリスト カスタマイズ 基本色16色
pieSeries.colors.list = [
am4core.color("#00ffff"),
am4core.color("#008080"),
am4core.color("#0000ff"),
am4core.color("#000080"),
am4core.color("#ffff00"),
am4core.color("#808000"),
am4core.color("#00ff00"),
am4core.color("#008000"),
am4core.color("#ff00ff"),
am4core.color("#800080"),
am4core.color("#ff0000"),
am4core.color("#800000"),
am4core.color("#ffffff"),
am4core.color("#808080"),
am4core.color("#c0c0c0"),
am4core.color("#000000"),
am4core.color("#8DB600"),
am4core.color("#654522"),
am4core.color("#E25822"),
am4core.color("#2B3D26"),
am4core.color("#F2F3F4"),
am4core.color("#222222")
];
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>amCharts V4 円グラフ Example pie chart spec01-3 オプションのカラーリストで、好みの色を定義する方法</title> <!-- Importing modules/scriptsFor a Pie chart, import core (main module) and charts modules. CDNサイト --> <script src="//www.amcharts.com/lib/4/core.js"></script> <script src="//www.amcharts.com/lib/4/charts.js"></script> <!-- グラフ描写DIV域 CSS --> <style> #chartdiv { width: 700px; height: 500px; } </style> </head> <body> <!-- グラフ描写DIV域 --> <div id="chartdiv"></div> <!-- amcharts グラフ描写 javascript, 描写DIV域より後に置く --> <script> // Create chart instance var chart = am4core.create("chartdiv", am4charts.PieChart); // Add data chart.data = [{ "職業": "大学教授・研究者", "人数": 264 }, { "職業": "医師", "人数": 197 }, { "職業": "小説家", "人数": 179 }, { "職業": "大工など職人", "人数": 153 }, { "職業": "公務員(行政職)", "人数": 150 }, { "職業": "学芸員", "人数": 145 }, { "職業": "歌手・ミュージシャン", "人数": 137 }, { "職業": "パイロット", "人数": 137 }, { "職業": "ジャーナリスト・編集者", "人数": 130 }, { "職業": "俳優", "人数": 128 }]; // シリーズ設定 Add and configure Series var pieSeries = chart.series.push(new am4charts.PieSeries()); //グラフ生成 Creating a series, Regular Pie chart pieSeries.dataFields.value = "人数"; //Setting up series 値 pieSeries.dataFields.category = "職業"; //Setting up series カテゴリ //カラーリスト カスタマイズ 基本色16色 spec01-3 pieSeries.colors.list = [ am4core.color("#00ffff"), am4core.color("#008080"), am4core.color("#0000ff"), am4core.color("#000080"), am4core.color("#ffff00"), am4core.color("#808000"), am4core.color("#00ff00"), am4core.color("#008000"), am4core.color("#ff00ff"), am4core.color("#800080"), am4core.color("#ff0000"), am4core.color("#800000"), am4core.color("#ffffff"), am4core.color("#808080"), am4core.color("#c0c0c0"), am4core.color("#000000"), am4core.color("#8DB600"), am4core.color("#654522"), am4core.color("#E25822"), am4core.color("#2B3D26"), am4core.color("#F2F3F4"), am4core.color("#222222") ]; //凡例表示 chart.legend = new am4charts.Legend(); chart.legend.marginBottom = 30; chart.legend.position = "bottom"; //タイトル var title = chart.titles.create(); title.text = "(beランキング)生まれ変わったら就きたい職業 夢あるようで、ないようで…TOP 10"; title.marginBottom = 30; </script> </body> </html>
// javascript 凡例表示 マーカーを円形にする
chart.legend = new am4charts.Legend(); // 凡例表示
chart.legend.useDefaultMarker = true;
var marker = chart.legend.markers.template.children.getIndex(0);
marker.cornerRadius(12, 12, 12, 12);
marker.strokeWidth = 2;
marker.strokeOpacity = 1;
marker.stroke = am4core.color("#ccc");
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>amCharts V4 円グラフ Example pie chart spec02 凡例のマーカーの形状を、円形(〇)に変更 </title> <!-- Importing modules/scriptsFor a Pie chart, import core (main module) and charts modules. CDNサイト --> <script src="//www.amcharts.com/lib/4/core.js"></script> <script src="//www.amcharts.com/lib/4/charts.js"></script> <!-- グラフ描写DIV域 CSS --> <style> #chartdiv { width: 800px; height: 500px; } </style> </head> <body> <!-- 描写DIV域 --> <div id="chartdiv"></div> <!-- amcharts グラフ描写 javascript, 描写DIV域より後に置く --> <script> // グラフ生成インスタンス Create chart instance var chart = am4core.create("chartdiv", am4charts.PieChart); // グラフデータ Add data chart.data = [ { "職業": "大学教授・研究者", "人数": 264 }, { "職業": "医師", "人数": 197 }, { "職業": "小説家", "人数": 179 }, { "職業": "大工など職人", "人数": 153 }, { "職業": "公務員(行政職)", "人数": 150 }, { "職業": "学芸員", "人数": 145 }, { "職業": "歌手・ミュージシャン", "人数": 137 }, { "職業": "パイロット", "人数": 137 }, { "職業": "ジャーナリスト・編集者", "人数": 130 }, { "職業": "俳優", "人数": 128 } ]; // シリーズ定義 Add and configure Series var pieSeries = chart.series.push(new am4charts.PieSeries()); //グラフ生成 Creating a series, Regular Pie chart pieSeries.dataFields.value = "人数"; //Setting up series 値 pieSeries.dataFields.category = "職業"; //Setting up series カテゴリ // javascript 凡例表示 マーカーを円形にする spec02 chart.legend = new am4charts.Legend(); // 凡例表示 chart.legend.useDefaultMarker = true; var marker = chart.legend.markers.template.children.getIndex(0); marker.cornerRadius(12, 12, 12, 12); marker.strokeWidth = 2; marker.strokeOpacity = 1; marker.stroke = am4core.color("#ccc"); //タイトル var title = chart.titles.create(); title.text = "(beランキング)生まれ変わったら就きたい職業 … TOP 10"; title.fontSize = 16; title.marginBottom = 10; </script> </body> </html>
<!-- html CSS データラベルの文字の大きさと色 -->
<style>
#chartdiv {
width: 700px;
height: 500px;
padding:20px;
font-size:12px; /* グラフ内の文字の大きさ(タイトルを除く)指定可 */
font-weight:bold; /* グラフ内の文字の太さ */
}
</style>
// javascript データラベルおよび凡例文字の色
pieSeries.labels.template.fill = am4core.color("green"); //スライスデータラベル
chart.legend.labels.template.text = "Series: [bold {color}]{name}[/]"; //凡例
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>amCharts V4 円グラフ Example pie chart spec03 文字の色およびサイズの変更</title> <!-- Importing modules/scriptsFor a Pie chart, import core (main module) and charts modules. CDNサイト --> <script src="//www.amcharts.com/lib/4/core.js"></script> <script src="//www.amcharts.com/lib/4/charts.js"></script> <!-- グラフ描写DIV域 CSS --> <style> #chartdiv { width: 800px; height: 500px; font-size:12px; /* spec03 グラフ内の文字の大きさ(タイトルを除くフォントサイズ)spec03 */ font-weight:bold; /* グラフ内の文字の太さ spec03 */ } </style> </head> <body> <!-- 描写DIV域 --> <div id="chartdiv"></div> <!-- amcharts グラフ描写 javascript, 描写DIV域より後に置く --> <script> // グラフ生成インスタンス Create chart instance var chart = am4core.create("chartdiv", am4charts.PieChart); // グラフデータ Add data chart.data = [ { "職業": "大学教授・研究者", "人数": 264 }, { "職業": "医師", "人数": 197 }, { "職業": "小説家", "人数": 179 }, { "職業": "大工など職人", "人数": 153 }, { "職業": "公務員(行政職)", "人数": 150 }, { "職業": "学芸員", "人数": 145 }, { "職業": "歌手・ミュージシャン", "人数": 137 }, { "職業": "パイロット", "人数": 137 }, { "職業": "ジャーナリスト・編集者", "人数": 130 }, { "職業": "俳優", "人数": 128 } ]; // シリーズ定義 Add and configure Series var pieSeries = chart.series.push(new am4charts.PieSeries()); //グラフ生成 Creating a series, Regular Pie chart pieSeries.dataFields.value = "人数"; //Setting up series 値 pieSeries.dataFields.category = "職業"; //Setting up series カテゴリ //凡例表示 add legend chart.legend = new am4charts.Legend(); chart.legend.position = "bottom"; chart.legend.marginTop = 20; chart.legend.marginBottom = 20; // データラベルおよび凡例文字の色 spec03 pieSeries.labels.template.fill = am4core.color("green"); //スライスデータラベル chart.legend.labels.template.text = "Series: [bold {color}]{name}[/]"; //凡例 //タイトル var title = chart.titles.create(); title.text = "(beランキング)生まれ変わったら就きたい職業 … TOP 10"; title.fontSize = 18; //タイトルのフォントサイズ spec03 title.marginBottom = 10; </script> </body> </html>
// javascript スライスにボーダー(境界線) spec04
pieSeries.slices.template.stroke = am4core.color("#ffffff");
pieSeries.slices.template.strokeWidth = 1;
pieSeries.slices.template.strokeOpacity = 1;
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>amCharts V4 円グラフ Example pie chart spec04 グラフのスライスに枠線(ボーダーライン)を付ける </title> <!-- Importing modules/scriptsFor a Pie chart, import core (main module) and charts modules. CDNサイト --> <script src="//www.amcharts.com/lib/4/core.js"></script> <script src="//www.amcharts.com/lib/4/charts.js"></script> <!-- グラフ描写DIV域 CSS --> <style> #chartdiv { width: 800px; height: 500px; } </style> </head> <body> <!-- 描写DIV域 --> <div id="chartdiv"></div> <!-- amcharts グラフ描写 javascript, 描写DIV域より後に置く --> <script> // グラフ生成インスタンス Create chart instance var chart = am4core.create("chartdiv", am4charts.PieChart); // グラフデータ Add data chart.data = [ { "職業": "大学教授・研究者", "人数": 264 }, { "職業": "医師", "人数": 197 }, { "職業": "小説家", "人数": 179 }, { "職業": "大工など職人", "人数": 153 }, { "職業": "公務員(行政職)", "人数": 150 }, { "職業": "学芸員", "人数": 145 }, { "職業": "歌手・ミュージシャン", "人数": 137 }, { "職業": "パイロット", "人数": 137 }, { "職業": "ジャーナリスト・編集者", "人数": 130 }, { "職業": "俳優", "人数": 128 } ]; // シリーズ定義 Add and configure Series var pieSeries = chart.series.push(new am4charts.PieSeries()); //グラフ生成 Creating a series, Regular Pie chart pieSeries.dataFields.value = "人数"; //Setting up series 値 pieSeries.dataFields.category = "職業"; //Setting up series カテゴリ //凡例表示 add legend chart.legend = new am4charts.Legend(); chart.legend.position = "bottom"; chart.legend.marginTop = 20; chart.legend.marginBottom = 20; //タイトル var title = chart.titles.create(); title.text = "(beランキング)生まれ変わったら就きたい職業 … TOP 10"; //title.fontSize = 16; title.marginBottom = 10; // javascript スライスにボーダー(境界線)を付ける spec04 pieSeries.slices.template.stroke = am4core.color("#ffffff"); pieSeries.slices.template.strokeWidth = 1; pieSeries.slices.template.strokeOpacity = 1; </script> </body> </html>
項番 | 表示コンテンツ名 | デフォルトの表示 | 変更後の表示 | 備考 |
1 | スライスラベル コンテンツ (グラフ円の外に表示) | (例) 医師: 12.2% ラベル: 割合% | (例) 医師:197人 (12.2%) | spec05-1 |
2 | ツールチップ コンテンツ (スライスの上をマウスオーバーで表示) | (例) 医師: 12.2%(197) ラベル: 割合%(データラベル) | (例) 医師:197人 (12.2%) | spec05-2 |
3 | 凡例の値 | (例) 医師 12.2% ラベル 割合% | (例) 医師:197 (12.2%) | spec05-3 |
記事 |
円グラフで表示するラベルなどの種類はつぎのとおり3項目あります。
|
// データラベルの表示内容変更 ************** //
//スライスラベル コンテンツ spec05-1 Changing slice label content View_Total_Sales_formatted
pieSeries.labels.template.text = "{category} : {value.value}" + " 人 " + "( {value.percent.formatNumber('#.0')} % )";
//スライスツールチップ コンテンツ spec05-2 Changing tooltip content
pieSeries.slices.template.tooltipText = "{category} : {value.value}" + " 人 " + "( {value.percent.formatNumber('#.0')} % )";
//凡例の値 spec05-3 Changing legend value
chart.legend.valueLabels.template.text = "{value.value}"+" ( {value.percent.formatNumber('#.0')} % )";
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>amCharts V4 円グラフ Example pie chart spec05 データラベルなどの表示内容の変更 </title> <!-- Importing modules/scriptsFor a Pie chart, import core (main module) and charts modules. CDNサイト --> <script src="//www.amcharts.com/lib/4/core.js"></script> <script src="//www.amcharts.com/lib/4/charts.js"></script> <!-- カラーテーマ kelly.js インクルード spec01-1 --> <script src="https://www.amcharts.com/lib/4/themes/kelly.js"></script> <!-- グラフ描写DIV域 CSS --> <style> #chartdiv { width: 800px; height: 500px; } </style> </head> <body> <!-- 描写DIV域 --> <div id="chartdiv"></div> <!-- amcharts グラフ描写 javascript, 描写DIV域より後に置く --> <script> // グラフ生成インスタンス Create chart instance var chart = am4core.create("chartdiv", am4charts.PieChart); // グラフデータ Add data chart.data = [ { "職業": "大学教授・研究者", "人数": 264 }, { "職業": "医師", "人数": 197 }, { "職業": "小説家", "人数": 179 }, { "職業": "大工など職人", "人数": 153 }, { "職業": "公務員(行政職)", "人数": 150 }, { "職業": "学芸員", "人数": 145 }, { "職業": "歌手・ミュージシャン", "人数": 137 }, { "職業": "パイロット", "人数": 137 }, { "職業": "ジャーナリスト・編集者", "人数": 130 }, { "職業": "俳優", "人数": 128 } ]; // シリーズ定義 Add and configure Series var pieSeries = chart.series.push(new am4charts.PieSeries()); //グラフ生成 Creating a series, Regular Pie chart pieSeries.dataFields.value = "人数"; //Setting up series 値 pieSeries.dataFields.category = "職業"; //Setting up series カテゴリ //凡例表示 add legend chart.legend = new am4charts.Legend(); chart.legend.position = "bottom"; chart.legend.marginTop = 20; chart.legend.marginBottom = 20; //タイトル var title = chart.titles.create(); title.text = "(beランキング)生まれ変わったら就きたい職業 … TOP 10"; title.marginBottom = 10; // データラベルの表示内容変更 spec05 ************** // //スライスラベル コンテンツ spec05-1 Changing slice label content View_Total_Sales_formatted pieSeries.labels.template.text = "{category} : {value.value}" + " 人 " + "( {value.percent.formatNumber('#.0')} % )"; //スライスツールチップ コンテンツ spec05-2 Changing tooltip content pieSeries.slices.template.tooltipText = "{category} : {value.value}" + " 人 " + "( {value.percent.formatNumber('#.0')} % )"; //凡例の値 spec05-3 Changing legend value chart.legend.valueLabels.template.text = "{value.value}"+" ( {value.percent.formatNumber('#.0')} % )"; </script> </body> </html>
データラベル(スライスラベル コンテンツ)の表示位置は、デフォルトではグラフ円の外に表示されます(spec05参照)。
スライスのデータラベルを、円(スライス)の上(中)に表示する方法とそのサンプルをつぎに示します。
//データラベルをスライスの上に表示 spec06
pieSeries.ticks.template.disabled = true;
pieSeries.alignLabels = false;
pieSeries.labels.template.text = "{value.percent.formatNumber('#.0')}%"; //表示するデータラベルの内容(spec05参照)
pieSeries.labels.template.radius = am4core.percent(-40); //数値を大きくすると表示文字が中心の方へ近づきます
pieSeries.labels.template.fill = am4core.color("white");
pieSeries.labels.template.relativeRotation = 90;
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>amCharts V4 円グラフ Example pie chart spec06 データラベルをスライスの中に表示 </title> <link rel="stylesheet" href="index.css" /> <!-- Importing modules/scriptsFor a Pie chart, CDNサイト, we'll need to import core (main module) and charts modules.--> <script src="//www.amcharts.com/lib/4/core.js"></script> <script src="//www.amcharts.com/lib/4/charts.js"></script> <script src="https://www.amcharts.com/lib/4/themes/kelly.js"></script> <!-- Styles --> <style> #chartdiv { width: 700px; height: 600px; padding:20px; } </style> </head> <body> <!-- 描写DIV域 --> <div id="chartdiv"></div> <!-- amcharts 描写javascriptは、描写DIV域より後に置く --> <script> //データラベルをスライスの中に表示 ***************** //テーマ・色 am4core.useTheme(am4themes_kelly); // Create chart instance var chart = am4core.create("chartdiv", am4charts.PieChart); // Add data chart.data = [{ "費用": "恒久施設", "億円": 3450 }, { "費用": "仮設など", "億円": 3150 }, { "費用": "エネルギーインフラ", "億円": 450 }, { "費用": "輸送", "億円": 600 }, { "費用": "オペレーション", "億円": 1200 }, { "費用": "管理・広報", "億円": 650 }, { "費用": "セキュリティ、テクノロジーなど", "億円": 3300 }, { "費用": "その他", "億円": 700 }]; // Add and configure Series var pieSeries = chart.series.push(new am4charts.PieSeries()); //Creating a series pieSeries.dataFields.value = "億円"; //Setting up series 値 pieSeries.dataFields.category = "費用"; //Setting up series カテゴリ //凡例表示 chart.legend = new am4charts.Legend(); chart.legend.position = "right"; //タイトル var title = chart.titles.create(); title.text = "東京五輪・パラリンピックの大会運営費(総額:1兆3500億円)- 2018年12月"; title.marginBottom = 30; //データラベルをスライスの中に描く spec06 pieSeries.ticks.template.disabled = true; pieSeries.alignLabels = false; pieSeries.labels.template.text = "{value.percent.formatNumber('#.0')}%" + " ( {value.value} )"; pieSeries.labels.template.radius = am4core.percent(-70); pieSeries.labels.template.fill = am4core.color("white"); pieSeries.labels.template.relativeRotation = 90; </script> </body> </html>
<!-- html アニメーションテーマjs インクルード spec07 -->
<script src="https://www.amcharts.com/lib/4/themes/animated.js"></script>
// jvascript spec07 **********************
//アニメーション使用宣言 spec07
am4core.useTheme(am4themes_animated);
// 初期起動アニメーション生成 This creates initial animation spec07
pieSeries.hiddenState.properties.opacity = 1;
pieSeries.hiddenState.properties.endAngle = -90;
pieSeries.hiddenState.properties.startAngle = -90;
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>amCharts V4 円グラフ Example pie chart spec07 グラフ初期起動アニメーションを設定 </title> <!-- Importing modules/scriptsFor a Pie chart, import core (main module) and charts modules. CDNサイト --> <script src="//www.amcharts.com/lib/4/core.js"></script> <script src="//www.amcharts.com/lib/4/charts.js"></script> <!-- アニメーションテーマ spec07 --> <script src="https://www.amcharts.com/lib/4/themes/animated.js"></script> <!-- グラフ描写DIV域 CSS --> <style> #chartdiv { width: 800px; height: 500px; } </style> </head> <body> <!-- 描写DIV域 --> <div id="chartdiv"></div> <!-- amcharts グラフ描写 javascript, 描写DIV域より後に置く --> <script> //アニメーション使用宣言 spec07 am4core.useTheme(am4themes_animated); // グラフ生成インスタンス Create chart instance var chart = am4core.create("chartdiv", am4charts.PieChart); // グラフデータ Add data chart.data = [ { "職業": "大学教授・研究者", "人数": 264 }, { "職業": "医師", "人数": 197 }, { "職業": "小説家", "人数": 179 }, { "職業": "大工など職人", "人数": 153 }, { "職業": "公務員(行政職)", "人数": 150 }, { "職業": "学芸員", "人数": 145 }, { "職業": "歌手・ミュージシャン", "人数": 137 }, { "職業": "パイロット", "人数": 137 }, { "職業": "ジャーナリスト・編集者", "人数": 130 }, { "職業": "俳優", "人数": 128 } ]; // シリーズ定義 Add and configure Series var pieSeries = chart.series.push(new am4charts.PieSeries()); //グラフ生成 Creating a series, Regular Pie chart pieSeries.dataFields.value = "人数"; //Setting up series 値 pieSeries.dataFields.category = "職業"; //Setting up series カテゴリ //凡例表示 add legend chart.legend = new am4charts.Legend(); chart.legend.position = "bottom"; chart.legend.marginTop = 20; chart.legend.marginBottom = 20; //タイトル var title = chart.titles.create(); title.text = "(beランキング)生まれ変わったら就きたい職業 … TOP 10"; title.marginBottom = 10; // データラベルの表示内容変更 spec05 ************** // //スライスラベル コンテンツ spec05-1 Changing slice label content View_Total_Sales_formatted pieSeries.labels.template.text = "{category} : {value.value}" + " 人 " + "( {value.percent.formatNumber('#.0')} % )"; //スライスツールチップ コンテンツ spec05-2 Changing tooltip content pieSeries.slices.template.tooltipText = "{category} : {value.value}" + " 人 " + "( {value.percent.formatNumber('#.0')} % )"; //凡例の値 spec05-3 Changing legend value chart.legend.valueLabels.template.text = "{value.value}"+" ( {value.percent.formatNumber('#.0')} % )"; // 初期起動アニメーション生成 This creates initial animation spec07 pieSeries.hiddenState.properties.opacity = 1; pieSeries.hiddenState.properties.endAngle = -90; pieSeries.hiddenState.properties.startAngle = -90; </script> </body> </html>
//外部グラフデータCSV読み込み spec09
chart.dataSource.url = "./pie-sample_data.csv";
chart.dataSource.parser = new am4core.CSVParser();
chart.dataSource.parser.options.useColumnNames = true;
//サブタイトル(ラベル)を描く spec08
var label = chart.chartContainer.createChild(am4core.Label);
label.text = "グラフデータはCSVファイルから読み込み";
label.align = "center";
label.isMeasured = false;
label.x = 250; //または label.x = am4core.percent(45);
label.y = 320;
label.fontSize = 16;
職業,人数
大学教授・研究者,264
医師,197
小説家,179
大工など職人,153
公務員(行政職),150
学芸員,145
歌手・ミュージシャン,137
パイロット,137
ジャーナリスト・編集者,130
俳優,128
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>amCharts V4 円グラフ Example pie chart サブタイトル表示(spec08) および CSVデータ読み込み(spec09) </title> <!-- Importing modules/scriptsFor a Pie chart, import core (main module) and charts modules. CDNサイト --> <script src="//www.amcharts.com/lib/4/core.js"></script> <script src="//www.amcharts.com/lib/4/charts.js"></script> </head> <body> <!-- 描写DIV域 --> <div id="chartdiv" style=" width: 800px;height: 500px;font-size:12px;border:1px solid #dcdcdc;padding:5px"></div> <!-- amcharts グラフ描写 javascript, 描写DIV域より後に置く --> <script> // グラフ生成インスタンス Create chart instance var chart = am4core.create("chartdiv", am4charts.PieChart); //外部グラフデータCSV読み込み spec09 chart.dataSource.url = "./pie-sample_data.csv"; chart.dataSource.parser = new am4core.CSVParser(); chart.dataSource.parser.options.useColumnNames = true; // シリーズ定義 Add and configure Series var pieSeries = chart.series.push(new am4charts.PieSeries()); //グラフ生成 Creating a series, Regular Pie chart pieSeries.dataFields.value = "人数"; //Setting up series 値 pieSeries.dataFields.category = "職業"; //Setting up series カテゴリ //凡例表示 add legend chart.legend = new am4charts.Legend(); chart.legend.position = "bottom"; chart.legend.marginTop = 20; chart.legend.marginBottom = 20; //タイトル var title = chart.titles.create(); title.text = "(beランキング)生まれ変わったら就きたい職業 夢あるようで、ないようで…TOP 10"; title.fontSize = 18; title.marginBottom = 10; //サブタイトル(ラベル)を描く spec08 var label = chart.chartContainer.createChild(am4core.Label); label.text = "グラフデータはCSVファイルから読み込み"; label.align = "center"; label.isMeasured = false; label.x = 250; // または label.x = am4core.percent(45); label.y = 300; label.fontSize = 16; </script> </body> </html>
ドーナッツグラフの作成は、基本的な円グラフ(3. サンプル参照)につぎのコードを追加します。
合せて、ドーナッツの切り抜き部分にサブタイトルを描いてみます(タイトルは未定義)。
//ドーナッツグラフ donut chart
chart.innerRadius = am4core.percent(36); /* グラフ円の中心から切り抜く円の長さ(半径 %) */
//サブタイトル(ラベル)を描く spec08
var label = chart.chartContainer.createChild(am4core.Label);
label.text = " 生まれ変わったら\n 就きたい職業\n トップ 10";
label.align = "center";
label.isMeasured = false;
//label.x = 250; // ラベル表示位置 pix値
label.x = am4core.percent(44); // ラベル表示位置 %
//label.y = 300; // ラベル表示位置 pix値
label.y = am4core.percent(45); // ラベル表示位置 %
label.fontSize = 12;
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>amCharts V4 ドーナッツグラフ Example donut chart + サブタイトル表示(spec08) </title> <!-- Importing modules/scriptsFor a Pie chart, import core (main module) and charts modules. CDNサイト --> <script src="//www.amcharts.com/lib/4/core.js"></script> <script src="//www.amcharts.com/lib/4/charts.js"></script> <!-- グラフ描写DIV域 CSS --> <style> #chartdiv { width: 95%; height: 500px; font-size:12px; /* グラフ内の文字の大きさ(タイトルを除く)指定可 */ font-weight:bold; /* グラフ内の文字の太さ(タイトルを除く)指定可 */ } </style> </head> <body> <!-- グラフ描写DIV域 --> <div id="chartdiv"></div> <!-- amcharts グラフ描写 javascript, 描写DIV域より後に置く --> <script> // グラフ生成インスタンス Create chart instance var chart = am4core.create("chartdiv", am4charts.PieChart); // グラフデータ Add data chart.data = [ { "職業": "大学教授・研究者", "人数": 264 }, { "職業": "医師", "人数": 197 }, { "職業": "小説家", "人数": 179 }, { "職業": "大工など職人", "人数": 153 }, { "職業": "公務員(行政職)", "人数": 150 }, { "職業": "学芸員", "人数": 145 }, { "職業": "歌手・ミュージシャン", "人数": 137 }, { "職業": "パイロット", "人数": 137 }, { "職業": "ジャーナリスト・編集者", "人数": 130 }, { "職業": "俳優", "人数": 128 } ]; // シリーズ定義 Add and configure Series var pieSeries = chart.series.push(new am4charts.PieSeries()); //グラフ生成 Creating a series, Regular Pie chart pieSeries.dataFields.value = "人数"; //Setting up series 値 pieSeries.dataFields.category = "職業"; //Setting up series カテゴリ //ドーナッツグラフ donut chart chart.innerRadius = am4core.percent(36); /* 円の中心部の切り抜きの長さ(半径 %) */ //凡例表示 add legend chart.legend = new am4charts.Legend(); chart.legend.position = "bottom"; chart.legend.marginTop = 50; chart.legend.marginBottom = 20; //タイトル未設定 //サブタイトル(ラベル)を描く spec08 var label = chart.chartContainer.createChild(am4core.Label); label.text = " 生まれ変わったら\n 就きたい職業\n トップ 10"; label.align = "center"; label.isMeasured = false; //label.x = 250; // ラベル表示位置 pix値 label.x = am4core.percent(44); // ラベル表示位置 % //label.y = 300; // ラベル表示位置 pix値 label.y = am4core.percent(45); // ラベル表示位置 % label.fontSize = 12; </script> </body> </html>
pie: { innerSize: '40%', // ドーナッツグラフの場合、円の中心部の切り抜きの長さ '99%'か数値px, }
半円グラフ (Semi circle pie)の作成は、基本的な円グラフ(3. サンプル参照)につぎのコードを追加します。
//半円グラフ semi-circle-pie
chart.startAngle = 180;
chart.endAngle = 360;
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>amCharts V4 半円グラフ サンプル Example semi circle pie </title> <!-- Importing modules/scriptsFor a Pie chart, import core (main module) and charts modules. CDNサイト --> <script src="//www.amcharts.com/lib/4/core.js"></script> <script src="//www.amcharts.com/lib/4/charts.js"></script> <!-- 描写DIV域 <style> #chartdiv { width: 95%; height: 500px; font-size:12px; /* グラフ内の文字の大きさ(タイトルを除く)指定可 */ } </style> --> </head> <body> <!-- 描写DIV域 --> <div id="chartdiv" style=" width: 800px;height: 500px;font-size:12px;"></div> <!-- amcharts グラフ描写 javascript, 描写DIV域より後に置く --> <script> // グラフ生成インスタンス Create chart instance var chart = am4core.create("chartdiv", am4charts.PieChart); // グラフデータ Add data chart.data = [ { "職業": "大学教授・研究者", "人数": 264 }, { "職業": "医師", "人数": 197 }, { "職業": "小説家", "人数": 179 }, { "職業": "大工など職人", "人数": 153 }, { "職業": "公務員(行政職)", "人数": 150 }, { "職業": "学芸員", "人数": 145 }, { "職業": "歌手・ミュージシャン", "人数": 137 }, { "職業": "パイロット", "人数": 137 }, { "職業": "ジャーナリスト・編集者", "人数": 130 }, { "職業": "俳優", "人数": 128 } ]; // シリーズ定義 Add and configure Series var pieSeries = chart.series.push(new am4charts.PieSeries()); //グラフ生成 Creating a series, Regular Pie chart pieSeries.dataFields.value = "人数"; //Setting up series 値 pieSeries.dataFields.category = "職業"; //Setting up series カテゴリ //半円グラフ semi-circle-pie chart.startAngle = 180; chart.endAngle = 360; //凡例表示 add legend chart.legend = new am4charts.Legend(); chart.legend.position = "bottom"; chart.legend.marginTop = 20; chart.legend.marginBottom = 20; //タイトル var title = chart.titles.create(); title.text = "(beランキング)生まれ変わったら就きたい職業 … TOP 10"; title.fontSize = 16; title.marginBottom = 10; </script> </body> </html>
半円ドーナッツグラフ (Semi circle donut)を作成するには、基本的な円グラフ(3. サンプル参照)につぎのコードを追加します。
合せて、半円ドーナッツの中にサブタイトル(ラベル)を表示してみます。
//半円ドーナッツグラフ Semi circle donut 追加コード
chart.startAngle = 180; //半円 semi circle、 180(°)固定
chart.endAngle = 360; //半円 semi circle、 360(°)固定
chart.radius = am4core.percent(70); // ドーナッツ donut 半円ドーナッツの大きさ(%)
chart.innerRadius = am4core.percent(40); // ドーナッツ donut 切り抜く半円の長さ(半径 %)
//サブタイトル(ラベル)を描く spec08
var label = chart.chartContainer.createChild(am4core.Label);
label.text = " (beランキング)\n生まれ変わったら就きたい職業 …TOP 10";
label.align = "center";
label.isMeasured = false;
//label.x = 250; // ラベル表示位置 pix値
label.x = am4core.percent(33); // ラベル表示位置 %
//label.y = 300; // ラベル表示位置 pix値
label.y = am4core.percent(70); // ラベル表示位置 %
label.fontSize = 15;
label.fontWeight = "bold";
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>amCharts V4 半円ドナッツグラフ サンプル Example semi circle donut </title> <!-- Importing modules/scriptsFor a Pie chart, import core (main module) and charts modules. CDNサイト --> <script src="//www.amcharts.com/lib/4/core.js"></script> <script src="//www.amcharts.com/lib/4/charts.js"></script> <!-- 描写DIV域 <style> #chartdiv { width: 800px; height: 500px; font-size:12px; /* グラフ内の文字の大きさ(タイトルを除く)*/ } </style> --> </head> <body> <!-- 描写DIV域 --> <div id="chartdiv"></div> <!-- amcharts グラフ描写 javascript, 描写DIV域より後に置く --> <script> // グラフ生成インスタンス Create chart instance var chart = am4core.create("chartdiv", am4charts.PieChart); // グラフデータ Add data chart.data = [ { "職業": "大学教授・研究者", "人数": 264 }, { "職業": "医師", "人数": 197 }, { "職業": "小説家", "人数": 179 }, { "職業": "大工など職人", "人数": 153 }, { "職業": "公務員(行政職)", "人数": 150 }, { "職業": "学芸員", "人数": 145 }, { "職業": "歌手・ミュージシャン", "人数": 137 }, { "職業": "パイロット", "人数": 137 }, { "職業": "ジャーナリスト・編集者", "人数": 130 }, { "職業": "俳優", "人数": 128 } ]; // シリーズ定義 Add and configure Series var pieSeries = chart.series.push(new am4charts.PieSeries()); //シリーズ生成 Creating a series, Regular Pie chart pieSeries.dataFields.value = "人数"; //Setting up series 値 pieSeries.dataFields.category = "職業"; //Setting up series カテゴリ //半円ドーナッツグラフ semi circle donut chart.startAngle = 180; //半円グラフ semi circle chart.endAngle = 360; //半円グラフ semi circle chart.radius = am4core.percent(70); // 追加コード donut chart.innerRadius = am4core.percent(40); // 追加コード donut 切り抜く半円の長さ(半径 %) //凡例表示 add legend chart.legend = new am4charts.Legend(); chart.legend.position = "bottom"; chart.legend.marginTop = 20; chart.legend.marginBottom = 20; //タイトル var title = chart.titles.create(); title.text = "(beランキング)生まれ変わったら就きたい職業 … TOP 10"; title.fontSize = 16; title.marginBottom = 10; title.fontWeight = "bold"; //サブタイトル(ラベル)を描く spec08 var label = chart.chartContainer.createChild(am4core.Label); label.text = " (beランキング)\n生まれ変わったら就きたい職業 …TOP 10"; label.align = "center"; label.isMeasured = false; //label.x = 250; // ラベル表示位置 pix値 label.x = am4core.percent(33); // ラベル表示位置 % //label.y = 300; // ラベル表示位置 pix値 label.y = am4core.percent(70); // ラベル表示位置 % label.fontSize = 15; label.fontWeight = "bold"; </script> </body> </html>
3D 円グラフ(3D pie)を作成するには、円グラフ ((3. サンプル参照)のjavascriptのつぎの2つの文を3D用に修正します。
// 3D グラフインスタンスの生成 Create 3D chart instance
var chart = am4core.create("chartdiv", am4charts.PieChart3D);
// 3D シリーズの生成 Creating a 3D pie chart series, add configure series,
var pieSeries = chart.series.push(new am4charts.PieSeries3D());
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>amCharts V4 3D 円グラフ Example 3D pie chart </title> <!-- Importing modules/scriptsFor a Pie chart, import core (main module) and charts modules. CDNサイト --> <script src="//www.amcharts.com/lib/4/core.js"></script> <script src="//www.amcharts.com/lib/4/charts.js"></script> <!-- グラフ描写DIV域 --> <style> #chartdiv { width: 800px; height: 500px; font-size:12px; /* グラフ内の文字の大きさ(タイトルを除く)指定可 */ } </style> </head> <body> <!-- グラフ描写DIV域 --> <div id="chartdiv"></div> <!-- amcharts グラフ描写 javascript, 描写DIV域より後に置く --> <script> // 3D グラフインスタンスの生成 Create 3D chart instance var chart = am4core.create("chartdiv", am4charts.PieChart3D); // 3D // グラフデータ Add data chart.data = [ { "職業": "大学教授・研究者", "人数": 264 }, { "職業": "医師", "人数": 197 }, { "職業": "小説家", "人数": 179 }, { "職業": "大工など職人", "人数": 153 }, { "職業": "公務員(行政職)", "人数": 150 }, { "職業": "学芸員", "人数": 145 }, { "職業": "歌手・ミュージシャン", "人数": 137 }, { "職業": "パイロット", "人数": 137 }, { "職業": "ジャーナリスト・編集者", "人数": 130 }, { "職業": "俳優", "人数": 128 } ]; // 3D グラフシリーズの生成 Creating a 3D pie chart series, add configure series var pieSeries = chart.series.push(new am4charts.PieSeries3D()); //3D Pie chart pieSeries.dataFields.value = "人数"; //Setting up series 値 pieSeries.dataFields.category = "職業"; //Setting up series カテゴリ //凡例表示 add legend chart.legend = new am4charts.Legend(); chart.legend.position = "bottom"; chart.legend.marginTop = 20; chart.legend.marginBottom = 20; //タイトル var title = chart.titles.create(); title.text = "(beランキング)生まれ変わったら就きたい職業 … TOP 10"; title.fontSize = 16; title.marginBottom = 10; </script> </body> </html>
3D 円ブラフにおいて、最初のスライスの高さを変えて強調するにはつぎのコードを「シリーズ設定」の後に追加します。
// シリーズ設定 Add and configure Series
var pieSeries = chart.series.push(new am4charts.PieSeries3D()); //グラフ生成 Creating a series, Regular Pie chart
pieSeries.dataFields.value = "人数"; //Setting up series データラベル(値)の項目名
pieSeries.dataFields.category = "職業"; //Setting up series カテゴリの項目名
pieSeries.dataFields.depthValue = "人数"; //追加コード シリーズのデータラベルの項目名
pieSeries.slices.template.cornerRadius = 5; //追加コード スライスのコーナーの角の丸み
pieSeries.colors.step = 3; //追加コード 色の割り当て間隔
chart.depth = 120; //追加コード 3Dの厚さ
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>amCharts V4 3D 円グラフ Example 3D pie chart 最初のスライスの高さを変えて強調する</title> <!-- Importing modules/scriptsFor a Pie chart, import core (main module) and charts modules. CDNサイト --> <script src="//www.amcharts.com/lib/4/core.js"></script> <script src="//www.amcharts.com/lib/4/charts.js"></script> <!-- グラフ描写DIV域 CSS --> <style> #chartdiv { width: 800px; height: 600px; } </style> </head> <body> <!-- グラフ描写DIV域 --> <div id="chartdiv"></div> <!-- amcharts グラフ描写 javascript, 描写DIV域より後に置く --> <script> // Create chart instance var chart = am4core.create("chartdiv", am4charts.PieChart3D); // Add data chart.data = [{ "職業": "大学教授・研究者", "人数": 264 }, { "職業": "医師", "人数": 197 }, { "職業": "小説家", "人数": 179 }, { "職業": "大工など職人", "人数": 153 }, { "職業": "公務員(行政職)", "人数": 150 }, { "職業": "学芸員", "人数": 145 }, { "職業": "歌手・ミュージシャン", "人数": 137 }, { "職業": "パイロット", "人数": 137 }, { "職業": "ジャーナリスト・編集者", "人数": 130 }, { "職業": "俳優", "人数": 128 }]; // シリーズ設定 Add and configure Series var pieSeries = chart.series.push(new am4charts.PieSeries3D()); //グラフ生成 Creating a series, Regular Pie chart pieSeries.dataFields.value = "人数"; //Setting up series 値 pieSeries.dataFields.category = "職業"; //Setting up series カテゴリ pieSeries.dataFields.depthValue = "人数"; pieSeries.slices.template.cornerRadius = 5; pieSeries.colors.step = 3; chart.depth = 120; //凡例表示 chart.legend = new am4charts.Legend(); chart.legend.marginBottom = 30; chart.legend.position = "bottom"; //タイトル var title = chart.titles.create(); title.text = "(beランキング)生まれ変わったら就きたい職業 夢あるようで、ないようで…TOP 10"; title.marginBottom = 30; </script> </body> </html>
3D ドーナッツグラフの作成は、3D 円グラフ(3.5.項 3D pie)につぎのコードを追加します。
javascript
//ドーナッツグラフ donut chart
chart.innerRadius = am4core.percent(36); /* グラフ円の中心から切り抜く円の長さ(半径 %) */
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>amCharts V4 3D ドーナッツグラフ Example 3D donut chart </title> <!-- Importing modules/scriptsFor a Pie chart, import core (main module) and charts modules. CDNサイト --> <script src="//www.amcharts.com/lib/4/core.js"></script> <script src="//www.amcharts.com/lib/4/charts.js"></script> <!-- グラフ描写DIV域 --> <style> #chartdiv { width: 800px; height: 500px; //font-size:12px; /* グラフ内の文字の大きさ(タイトルを除く)指定可 */ } </style> </head> <body> <!-- グラフ描写DIV域 --> <div id="chartdiv"></div> <!-- amcharts グラフ描写 javascript, 描写DIV域より後に置く --> <script> // 3D グラフインスタンスの生成 Create 3D chart instance var chart = am4core.create("chartdiv", am4charts.PieChart3D); // 3D // グラフデータ Add data chart.data = [ { "職業": "大学教授・研究者", "人数": 264 }, { "職業": "医師", "人数": 197 }, { "職業": "小説家", "人数": 179 }, { "職業": "大工など職人", "人数": 153 }, { "職業": "公務員(行政職)", "人数": 150 }, { "職業": "学芸員", "人数": 145 }, { "職業": "歌手・ミュージシャン", "人数": 137 }, { "職業": "パイロット", "人数": 137 }, { "職業": "ジャーナリスト・編集者", "人数": 130 }, { "職業": "俳優", "人数": 128 } ]; // 3D グラフシリーズの生成 Creating a 3D pie chart series, add configure series var pieSeries = chart.series.push(new am4charts.PieSeries3D()); //3D Pie chart pieSeries.dataFields.value = "人数"; //Setting up series 値 pieSeries.dataFields.category = "職業"; //Setting up series カテゴリ //ドーナッツグラフ donut chart chart.innerRadius = am4core.percent(36); /* グラフ円の中心から切り抜く円の長さ(半径 %) */ //凡例表示 add legend chart.legend = new am4charts.Legend(); chart.legend.position = "bottom"; chart.legend.marginTop = 20; chart.legend.marginBottom = 20; //タイトル var title = chart.titles.create(); title.text = "(beランキング)生まれ変わったら就きたい職業 … TOP 10"; title.fontSize = 16; title.marginBottom = 10; </script> </body> </html>
3D 半円グラフの作成は、3D 円グラフ(3.5.項 3D pie)につぎのコードを追加します。
javascript
//半円グラフ semi-circle-pie
chart.startAngle = 180;
chart.endAngle = 360;
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>amCharts V4 3D 半円グラフ Example 3D semi circle pie chart </title> <!-- Importing modules/scriptsFor a Pie chart, import core (main module) and charts modules. CDNサイト --> <script src="//www.amcharts.com/lib/4/core.js"></script> <script src="//www.amcharts.com/lib/4/charts.js"></script> <!-- グラフ描写DIV域 --> <style> #chartdiv { width: 800px; height: 500px; font-size:15px; /* グラフ内の文字の大きさ(タイトルを除く)指定可 */ } </style> </head> <body> <!-- グラフ描写DIV域 --> <div id="chartdiv"></div> <!-- amcharts グラフ描写 javascript, 描写DIV域より後に置く --> <script> // 3D グラフインスタンスの生成 Create 3D chart instance var chart = am4core.create("chartdiv", am4charts.PieChart3D); // 3D // グラフデータ Add data chart.data = [ { "職業": "大学教授・研究者", "人数": 264 }, { "職業": "医師", "人数": 197 }, { "職業": "小説家", "人数": 179 }, { "職業": "大工など職人", "人数": 153 }, { "職業": "公務員(行政職)", "人数": 150 }, { "職業": "学芸員", "人数": 145 }, { "職業": "歌手・ミュージシャン", "人数": 137 }, { "職業": "パイロット", "人数": 137 }, { "職業": "ジャーナリスト・編集者", "人数": 130 }, { "職業": "俳優", "人数": 128 } ]; // 3D グラフシリーズの生成 Creating a 3D pie chart series, add configure series var pieSeries = chart.series.push(new am4charts.PieSeries3D()); //3D Pie chart pieSeries.dataFields.value = "人数"; //Setting up series 値 pieSeries.dataFields.category = "職業"; //Setting up series カテゴリ //半円グラフ semi-circle-pie chart.startAngle = 180; chart.endAngle = 360; chart.radius = am4core.percent(70); // 半円の大きさを調整(%) //凡例表示 add legend chart.legend = new am4charts.Legend(); chart.legend.position = "bottom"; chart.legend.marginTop = 20; chart.legend.marginBottom = 20; //タイトル var title = chart.titles.create(); title.text = "(beランキング)生まれ変わったら就きたい職業 … TOP 10"; title.fontSize = 18; title.marginBottom = 10; </script> </body> </html>
3D 半ドーナッツグラフの作成は、3D 円グラフ(3.5.項 3D pie)につぎのコードを追加します。
javascript
//半円ドーナッツグラフ Semi circle donut 追加コード
chart.startAngle = 180; //半円 semi circle、 180(°)固定
chart.endAngle = 360; //半円 semi circle、 360(°)固定
chart.radius = am4core.percent(70); // ドーナッツ donut 半円ドーナッツの大きさ(%)
chart.innerRadius = am4core.percent(40); // ドーナッツ donut 切り抜く半円の長さ(半径 %)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>amCharts V4 3D 半ドーナッツグラフ Example 3D semi circle donut chart </title> <!-- Importing modules/scriptsFor a Pie chart, import core (main module) and charts modules. CDNサイト --> <script src="//www.amcharts.com/lib/4/core.js"></script> <script src="//www.amcharts.com/lib/4/charts.js"></script> <!-- グラフ描写DIV域 --> <style> #chartdiv { width: 800px; height: 500px; font-size:12px; /* グラフ内の文字の大きさ(タイトルを除く)指定可 */ } </style> </head> <body> <!-- グラフ描写DIV域 --> <div id="chartdiv"></div> <!-- amcharts グラフ描写 javascript, 描写DIV域より後に置く --> <script> // 3D グラフインスタンスの生成 Create 3D chart instance var chart = am4core.create("chartdiv", am4charts.PieChart3D); // 3D // グラフデータ Add data chart.data = [ { "職業": "大学教授・研究者", "人数": 264 }, { "職業": "医師", "人数": 197 }, { "職業": "小説家", "人数": 179 }, { "職業": "大工など職人", "人数": 153 }, { "職業": "公務員(行政職)", "人数": 150 }, { "職業": "学芸員", "人数": 145 }, { "職業": "歌手・ミュージシャン", "人数": 137 }, { "職業": "パイロット", "人数": 137 }, { "職業": "ジャーナリスト・編集者", "人数": 130 }, { "職業": "俳優", "人数": 128 } ]; // 3D グラフシリーズの生成 Creating a 3D pie chart series, add configure series var pieSeries = chart.series.push(new am4charts.PieSeries3D()); //3D Pie chart pieSeries.dataFields.value = "人数"; //Setting up series 値 pieSeries.dataFields.category = "職業"; //Setting up series カテゴリ //半円ドーナッツグラフ Semi circle donut 追加コード chart.startAngle = 180; //半円 semi circle、 180(°)固定 chart.endAngle = 360; //半円 semi circle、 360(°)固定 chart.radius = am4core.percent(70); // ドーナッツ donut 半円ドーナッツの大きさ(%) chart.innerRadius = am4core.percent(40); // ドーナッツ donut 切り抜く半円の長さ(半径 %) //凡例表示 add legend chart.legend = new am4charts.Legend(); chart.legend.position = "bottom"; chart.legend.marginTop = 20; chart.legend.marginBottom = 20; //タイトル var title = chart.titles.create(); title.text = "(beランキング)生まれ変わったら就きたい職業 … TOP 10"; title.fontSize = 16; title.marginBottom = 10; </script> </body> </html>
1. 使用ファイル |2. 基本的な作り方 |3. サンプル
最終更新日:2019.2.19 初版 - 2023. 8.11 |
メール mailto: | 掲示板 |