Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
5
Help us understand the problem. What is going on with this article?
@Cremokoroah

xlwings chart_type一覧

More than 1 year has passed since last update.

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記事を投稿していく予定です。

よろしくお願いします。

5
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Cremokoroah
自動車部品関連の職種。Hyper Worksを触り始めてからOpenCAEなどのネタが好きです。Pythonは昔から好きです。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
5
Help us understand the problem. What is going on with this article?