実現したいこと
openpyxlでグラフを作成する際に、書式が変更されたのをもとに戻したい
発生している問題・分からないこと
諸事情によりIDEをAnaconda spyder からVSCodeに変更した時に、openpyxlを用いて作成したグラフの書式が大きく変わってしまった。何が原因なのかがわからず、試しにグラフを作るだけの簡単なコードを作成して走らせても同様によくわからない書式のグラフが出力される。
IDE変更前に作成したグラフ
変更後のグラフ
(該当ソースコードを使用して作成したグラフ、同様に書式が大きく変わってる)
グラフを操作していると、以下の特徴が確認された
・グラフの枠、フレームが角から角丸に変更されている(特に指定なしで)
・データそれぞれが別系列になっている(図参照)
pipのインストールリストを上げておきます
Package Version
asttokens 2.4.1
colorama 0.4.6
comm 0.2.2
contourpy 1.2.1
cycler 0.12.1
debugpy 1.8.5
decorator 5.1.1
et-xmlfile 1.1.0
exceptiongroup 1.2.2
executing 2.0.1
fonttools 4.53.1
ipykernel 6.29.5
ipython 8.26.0
jdcal 1.4.1
jedi 0.19.1
jupyter_client 8.6.2
jupyter_core 5.7.2
kiwisolver 1.4.5
matplotlib 3.9.2
matplotlib-inline 0.1.7
nest-asyncio 1.6.0
numpy 2.0.1
openpyxl 3.1.5
packaging 24.1
pandas 2.2.2
parso 0.8.4
pillow 10.4.0
pip 24.2
platformdirs 4.2.2
prompt_toolkit 3.0.47
psutil 6.0.0
pure_eval 0.2.3
Pygments 2.18.0
pyparsing 3.1.2
python-dateutil 2.9.0.post0
pytz 2024.1
pywin32 306
pyzmq 26.1.0
setuptools 65.5.0
six 1.16.0
stack-data 0.6.3
tornado 6.4.1
traitlets 5.14.3
typing_extensions 4.12.2
tzdata 2024.1
wcwidth 0.2.13
また、pythonを再インストールし、openpyxlのみをインストールした状態でも同じグラフが出力されました。
該当のソースコード
# -*- coding: utf-8 -*- #%% import openpyxl wb = openpyxl.Workbook() ws = wb.active # データの作成 for i in range(10): ws.append([i, i * 10]) # グラフの作成 chart = openpyxl.chart.LineChart() # グラフの外枠を角型に設定 chart.graphicalProperties = None # もしくは、カスタムプロパティを設定 # データ範囲を指定 data = openpyxl.chart.Reference(ws, min_col=2, min_row=1, max_row=10) chart.add_data(data, titles_from_data=True) # X軸、Y軸ラベルの位置を調整 chart.x_axis.title = "X軸のラベル" chart.y_axis.title = "Y軸のラベル" ws.add_chart(chart,"A1") wb.save("test.xlsx")
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
会社の同僚に聞いたところ、openpyxlのバージョンがspyder使用時と異なっているのではないかといわれ、調べてみたところ、おそらく同様にv3.1.5。試しに、v3.1.4、v2.6.0にダウングレードしても挙動は変わらず。
補足
特になし
回答1件
あなたの回答
tips
プレビュー