イセンチュートリアルサイト
  • CSS
    • スクロールダウン
    • テキストナビゲーション
    • ボタン
    • メニュー
    • 動画
    • 検索
    • 画像リンクの動き
    • 背景の動き
  • Illustrator
  • JS
    • アコーディオンパネル
    • アニメーション
    • エリアの動き
    • ギャラリー
    • グラフ
    • スライド
    • テキストの動き
    • ニュースティッカー
    • ページトップリンク
    • ページ内リンク
    • メニュー
    • モーダルウィンドウ
    • ローディング
  • Photoshop
  • PHP
  • WordPress
    • プラグイン
    • リンク
  • お客様観覧用
    • WEB制作プラン
    • アニメーション
    • グローバルナビゲーション
    • スライド
  • サーバー
    • CPI
  • 未分類
  • 法律
    • 医療法
    • 柔道整復師法
TOP JS グラフ 円グラフ

JS

円グラフ

  • カテゴリー:グラフ


     

    HTMLの書き方

    head終了タグ直前に自作のCSSを読み込みます。

    <link rel="stylesheet" type="text/css" href="css/9-5-6.css">

    body内のグラフを表示させたい場所にid名を付けたcanvasタグを記載します。

    <div class="chart-area">
    	<canvas id="chart01"></canvas>
    </div>

    body 終了タグ直前に jQuery、Chart.js、jquery.inview.js 動きを制御する自作のJS の4 つを読み込みます

    <script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/protonet-jquery.inview/1.1.2/jquery.inview.min.js"></script>
    <!--自作のJS-->
    <script src="js/9-5-6.js"></script>

     

    CSSの書き方

    .chart-area{/*円グラフがスマホでつぶれないようにする*/
    	position: relative;
    	width:100%;
    	height:50vh;
    }
    

     

    JSの書き方

    //値をグラフに表示させる
    Chart.plugins.register({
    	afterDatasetsDraw: function (chart, easing) {
    		var ctx = chart.ctx;
    		chart.data.datasets.forEach(function (dataset, i) {
    			var meta = chart.getDatasetMeta(i);
    				if (!meta.hidden) {
    					meta.data.forEach(function (element, index) {
    
    						// 値の表示
    						ctx.fillStyle = 'rgb(0, 0, 0,0.8)';//文字の色
    						var fontSize = 12;//フォントサイズ
    						var fontStyle = 'normal';//フォントスタイル
    						var fontFamily = 'Arial';//フォントファミリー
    						ctx.font = Chart.helpers.fontString(fontSize, fontStyle, fontFamily);
    						var dataString = dataset.data[index].toString();
    					
    						// 値の位置
    						ctx.textAlign = 'center';//テキストを中央寄せ
    						ctx.textBaseline = 'middle';//テキストベースラインの位置を中央揃え
    						var padding = 5;//余白
    						var position = element.tooltipPosition();
    						ctx.fillText(dataString, position.x, position.y - (fontSize / 2) - padding);		
    					});
    				}
    		});
    	}
    });
    
    
    //=========== 円グラフ ============//
    $('#chart01').on('inview', function(event, isInView) {//画面上に入ったらグラフを描画
    	if (isInView) {
    		var ctx=document.getElementById("chart01");//グラフを描画したい場所のid
    		var chart=new Chart(ctx,{
    			type:'pie',//グラフのタイプ
    			data:{//グラフのデータ
    				labels:[ "IT","営業","不動産","医療", ],//データの名前
    				datasets:[ {
    					label:"職種別比率",//グラフのタイトル
    					backgroundColor:[ "#BB5179","#FAFF67", "#58A27C","#3C00FF" ],//グラフの背景色
    					data:[ "20","30","10","40", ]//データ
    				}]
    			},
    			options:{//グラフのオプション
    				maintainAspectRatio: false,//CSSで大きさを調整するため、自動縮小をさせない
    				legend:{
    					display:true//グラフの説明を表示
    				},
    				tooltips:{//グラフへカーソルを合わせた際の詳細表示の設定
    					callbacks:{
    						label: function (tooltipItem, data) {
    							return data.labels[tooltipItem.index]+ ": "+ data.datasets[0].data[tooltipItem.index] + "%";//%を最後につける
    						}
    					},		
    				},
    				title:{//上部タイトル表示の設定
    					display: true,
    					fontSize:10,
    					text: '単位:%'
    				},
    			}
    		});
    	}
    });
    
    投稿日:2022年08月01日
次のページ
前のページ

アーカイブ

  • CSS (117)
    • スクロールダウン (8)
    • テキストナビゲーション (11)
    • ボタン (52)
    • メニュー (1)
    • 動画 (2)
    • 検索 (3)
    • 画像リンクの動き (23)
    • 背景の動き (17)
  • Illustrator (8)
  • JS (93)
    • アコーディオンパネル (2)
    • アニメーション (1)
    • エリアの動き (7)
    • ギャラリー (6)
    • グラフ (7)
    • スライド (9)
    • テキストの動き (17)
    • ニュースティッカー (1)
    • ページトップリンク (9)
    • ページ内リンク (2)
    • メニュー (28)
    • モーダルウィンドウ (1)
    • ローディング (3)
  • Photoshop (1)
  • PHP (20)
  • WordPress (4)
    • プラグイン (2)
    • リンク (1)
  • お客様観覧用 (11)
    • WEB制作プラン (1)
    • アニメーション (8)
    • グローバルナビゲーション (1)
    • スライド (1)
  • サーバー (6)
    • CPI (1)
  • 未分類 (6)
  • 法律 (2)
    • 医療法 (1)
    • 柔道整復師法 (1)
TOP
  • CSS
    • スクロールダウン
    • テキストナビゲーション
    • ボタン
    • メニュー
    • 動画
    • 検索
    • 画像リンクの動き
    • 背景の動き
  • Illustrator
  • JS
    • アコーディオンパネル
    • アニメーション
    • エリアの動き
    • ギャラリー
    • グラフ
    • スライド
    • テキストの動き
    • ニュースティッカー
    • ページトップリンク
    • ページ内リンク
    • メニュー
    • モーダルウィンドウ
    • ローディング
  • Photoshop
  • PHP
  • WordPress
    • プラグイン
    • リンク
  • お客様観覧用
    • WEB制作プラン
    • アニメーション
    • グローバルナビゲーション
    • スライド
  • サーバー
    • CPI
  • 未分類
  • 法律
    • 医療法
    • 柔道整復師法
© 2022 isen-print.