8
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

xlwings chart_type一覧

Posted at

#xlwingsでのグラフ作成

こんにちは、Cremokoroahです。
xlwingsでGraphを作成する際、散布図を作成したかったのに"Scatter"と指定しても散布図にならなかったので、chart_type(グラフの種類)の共有をしたいと思います。

※xlwingsのバージョンは0.15.1です

とりあえず、Jupyterで以下を実行すると画像のようにExcelのセルに乱数とグラフが作成されます。

コードは公式の例を参考にしております。
https://docs.xlwings.org/en/stable/api.html

import xlwings as xw
import numpy as np

sht = xw.Book().sheets[0]
rand_num = np.random.randn(15, 2)
sht.range('A1').value = rand_num
chart = sht.charts.add()
chart.set_source_data(sht.range('A1').expand())

スクリーンショット 2019-03-09 16.10.32.png

#グラフの種類を指定したい

先ほど添付した公式のコードを眺めると、どうやらグラフの種類を指定できるようです。Jupyterで以下のコードを実行してみます。

chart.chart_type = 'line'

すると、折れ線グラフになると思います。
スクリーンショット 2019-03-09 16.46.45.png

ですが、私がしたいことは散布図です。
ためしに、

chart.chart_type = 'Scatter'

とやってみました。
折れ線がlineならScatterいけるだろと思うとKey errorが返されました。

エラーを確認すると、
/anaconda3/lib/python3.6/site-packages/xlwings/xlmac.py(Windowsならxlwin.pyだったと思う)にはscatterなんてありません的なことを言われましたので、思い切ってxlmac.pyの中身を開いて、コマンドFで検索したところchart_typeの一覧がありました。散布図は'xy_scatter'とのことです。
公式で一覧を書いてくれてもいいと思うのに...

#結果
散布図になってくれました!!
スクリーンショット 2019-03-09 17.04.26.png

とりあえず一覧を貼っておきます。

'3d_area': -4098,
'3d_area_stacked': 78,
'3d_area_stacked_100': 79,
'3d_bar_clustered': 60,
'3d_bar_stacked': 61,
'3d_bar_stacked_100': 62,
'3d_column': -4100,
'3d_column_clustered': 54,
'3d_column_stacked': 55,
'3d_column_stacked_100': 56,
'3d_line': -4101,
'3d_pie': -4102,
'3d_pie_exploded': 70,

'area': 1,
'area_stacked': 76,
'area_stacked_100': 77,

'bar_clustered': 57,
'bar_of_pie': 71,
'bar_stacked': 58,
'bar_stacked_100': 59,

'bubble': 15,
'bubble_3d_effect': 87,

'column_clustered': 51,
'column_stacked': 52,
'column_stacked_100': 53,

'cone_bar_clustered': 102,
'cone_bar_stacked': 103,
'cone_bar_stacked_100': 104,
'cone_col': 105,
'cone_col_clustered': 99,
'cone_col_stacked': 100,
'cone_col_stacked_100': 101,

'cylinder_bar_clustered': 95,
'cylinder_bar_stacked': 96,
'cylinder_bar_stacked_100': 97,
'cylinder_col': 98,
'cylinder_col_clustered': 92,
'cylinder_col_stacked': 93,
'cylinder_col_stacked_100': 94,

'doughnut': -4120,
'doughnut_exploded': 80,

'line': 4,
'line_markers': 65,
'line_markers_stacked': 66,
'line_markers_stacked_100': 67,
'line_stacked': 63,
'line_stacked_100': 64,

'pie': 5,
'pie_exploded': 69,
'pie_of_pie': 68,

'pyramid_bar_clustered': 109,
'pyramid_bar_stacked': 110,
'pyramid_bar_stacked_100': 111,
'pyramid_col': 112,
'pyramid_col_clustered': 106,
'pyramid_col_stacked': 107,
'pyramid_col_stacked_100': 108,

'radar': -4151,
'radar_filled': 82,
'radar_markers': 81,

'stock_hlc': 88,
'stock_ohlc': 89,
'stock_vhlc': 90,
'stock_vohlc': 91,

'surface': 83,
'surface_top_view': 85,
'surface_top_view_wireframe': 86,
'surface_wireframe': 84,

'xy_scatter': -4169,
'xy_scatter_lines': 74,
'xy_scatter_lines_no_markers': 75,
'xy_scatter_smooth': 72,
'xy_scatter_smooth_no_markers': 73

数字の意味は私にはよくわかりませんがこれが一覧みたいです。

#最後に

私は機械設計エンジニアなのですが、社内で使用しているマクロに不満がありました。今更VBAは覚えたくないので色々調べたところ、なんとPythonにはxlwingsなるものがあることを最近知ったので共有させていただきました。

おそらく、私と同じように不満がありつつも既存のマクロを使用しているノンプログラマの方は多いと思います。今からVBAを覚えるのも悪くないと思いますが、どうせなら汎用性の高いプログラミング言語であるPythonを覚えつつ、業務効率化を狙ってみるのはいかがでしょうか??

今後、育児の合間をぬってノンプログラマ向けのxlwings記事を投稿していく予定です。

よろしくお願いします。

8
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?