宝くじ ハチ公 前k8 カジノ[解決!Python]Excelワークシートにドーナツグラフを作成するには(OpenPyXL)仮想通貨カジノパチンコパチスロ 新台 一覧
j スポーツ オン デマンド 中 日k8 カジノ
明石 市 パチンコ連載目次
from openpyxl import Workbookwb = Workbook()ws = wb.activevalues = [ [‘Product’, ‘2020’, ‘2021’], [‘A’, 4000, 4500], [‘B’, 3000, 2500], [‘C’, 2000, 1800], [‘D’, 1000, 1200]]for v in values: ws.append(v)wb.save(‘sample_chart.xlsx’)from openpyxl.chart import Reference, DoughnutChartrmin = ws.min_rowrmax = ws.max_rowcmin = ws.min_columncmax = ws.max_columnchart = DoughnutChart()labels = Reference(ws, min_col=cmin, min_row=rmin+1, max_row=rmax) # ‘Product’src = Reference(ws, min_col=cmin+1, min_row=rmin, max_row=rmax) # ‘2020’列chart.add_data(src, titles_from_data=True)chart.set_categories(labels)chart.title = ‘sales’ # グラフタイトルchart.anchor = ‘A9’ # グラフの表示位置chart.width = 16 # グラフのサイズchart.height = 8ws.add_chart(chart)wb.save(‘sample_chart.xlsx’)# ドーナツグラフから特定の構成要素を切り離して強調表示from openpyxl.chart.series import DataPointslice = DataPoint(idx=2, explosion=10)chart.ser[0].data_points = [slice]wb.save(‘sample_chart.xlsx’)# パーセンテージの表示from openpyxl.chart.label import DataLabel, DataLabelListdLbls = [DataLabel(idx=idx, showPercent=True) for idx in range(rmax-rmin)]dLbls = DataLabelList(dLbls)chart.ser[0].dLbls = dLblswb.save(‘sample_chart.xlsx’)# パーセンテージ表示の文字色を変更するfrom openpyxl.drawing.text import CharacterProperties, ParagraphProperties, Paragraphfrom openpyxl.chart.text import RichTextchar_props = CharacterProperties(solidFill=’FFFFFF’)para_props = ParagraphProperties(defRPr=char_props)para = Paragraph(pPr=para_props)bodyPr = RichText(p=[para])chart.ser[0].dLbls.textProperties = bodyPrwb.save(‘sample_chart.xlsx’)# 同心円状にドーナツグラフを表示するように系列を追加from openpyxl.chart import Seriessrc2 = Reference(ws, min_col=cmax, min_row=rmin, max_row=rmax) # ‘2021’列series2 = Series(src2, title_from_data=True)series2.dLbls = dLblsseries2.dLbls.textProperties = bodyPrchart.ser.append(series2)wb.save(‘sample_chart.xlsx’)slice = DataPoint(idx=2, explosion=10)chart.ser[1].data_points = [slice]wb.save(‘sample_chart.xlsx’)
サンプルのワークシート
本稿では以下のコードで作成したワークシートを例に取る。
from openpyxl import Workbookwb = Workbook()ws = wb.activevalues = [ [‘Product’, ‘2020’, ‘2021’], [‘A’, 4000, 4500], [‘B’, 3000, 2500], [‘C’, 2000, 1800], [‘D’, 1000, 1200]]for v in values: ws.append(v)
これをExcelで表示したものを以下に示す。
サンプルのワークシートドーナツグラフ
OpenPyXLを使ってドーナツグラフを作成するには、openpyxl.chart.DoughnutChartクラスを使用する。ドーナツグラフは円グラフとよく似ているが、中央が空いていて、見た目がドーナツに似ている。また、複数の系列のデータを同心円状に描画することで、特定の要素の増減をビジュアルに表現できる。作成の手順は以下の通り。
DoughnutChartクラスのインスタンス(グラフ)を生成するReferenceクラスを使って、グラフ作成の基となる範囲を指定するグラフにデータ(上で作成したReferenceクラスのインスタンス)を渡すグラフのタイトルなどの設定を行うワークシートにグラフを挿入する
ドーナツグラフ(DoughnutChart)で設定できる項目としては以下がある(一部)。
ドーナツグラフを作成する基本的なコード例を以下に示す。
from openpyxl.chart import Reference, DoughnutChartrmin = ws.min_rowrmax = ws.max_rowcmin = ws.min_columncmax = ws.max_columnchart = DoughnutChart()labels = Reference(ws, min_col=cmin, min_row=rmin+1, max_row=rmax) # ‘Product’src = Reference(ws, min_col=cmin+1, min_row=rmin, max_row=rmax) # ‘2020’chart.add_data(src, titles_from_data=True)chart.set_categories(labels)chart.title = ‘sales’ # グラフタイトルchart.anchor = ‘A9’ # グラフの表示位置chart.width = 16 # グラフのサイズchart.height = 8ws.add_chart(chart)
この例では、最初にDoughnutChartクラスのインスタンスを生成し、その後’Product’列にある’A’~’D’を項目名としてピックアップして変数labelsに格納し、’2020’列をドーナツグラフ描画の元データとして変数srcに格納している(’2021’列は後で同心円状にドーナツグラフを描く際に使用する)。そして、add_dataメソッドで変数srcをグラフにデータとして追加して、set_categoriesメソッドで変数labelsを項目名としてセットしている。その後はラベルやグラフの表示位置とサイズを設定している。
このコードを実行すると、次のようなグラフになる。
ドーナツグラフ
また、円グラフと同様に、ドーナツグラフの特定の要素を他の要素から切り離して、強調表示することも可能だ。これには、切り離したい要素のインデックス(0ベース)とどのくらい切り離すのかを指定して、DataPointクラスのインスタンスを生成し、それを系列の要素のdata_points属性に設定する(複数の要素を切り離したければ、インデックスと距離を指定したDataPointオブジェクトを複数用意して、それらを要素とするリストをdata_points属性に渡す)。
from openpyxl.chart.series import DataPointslice = DataPoint(idx=2, explosion=10) # 3つ目の要素を切り離すchart.ser[0].data_points = [slice]wb.save(‘sample_chart.xlsx’)
これにより、グラフは次のようになる。
3つ目の要素が切り離された
上のコードではidxに2を指定しているが、0ベースなので、これは3つ目の要素を示している。そのため、上の画像では3つ目の要素がグラフの他の要素から切り離されている。なお、この設定は同心円状にした場合には無効化される。
#CmsMembersControl .CmsMembersControlIn {width:100%;background:url(https://image.itmedia.co.jp/images/spacer.gif) #DDD;opacity:0.05;filter:progid:DXImageTransform.Microsoft.Alpha(Enabled=1,Style=0,Opacity=5);z-index:1;}続きを閲覧するには、ブラウザの JavaScript の設定を有効にする必要があります。仮想通貨カジノパチンコワールド カップ サッカー ボール