前提
通常のデータフレームは、以下のpythonプログラムで実行すれば、図形データに変換できます。
df = pd.DataFrame({
'名前':['A','B','C','D','E','F'],
'値':[0.09,0.12345,0.8123,0.2789,0.743,0.132]})[['名前','値']]
fig, ax = plt.subplots(figsize=(2,2))
ax.axis('off')
ax.axis('tight')
ax.table(cellText=df.values,
colLabels=df.columns,
loc='center',
bbox=[0,0,1,1])
plt.savefig('/content/drive/My Drive/table.png')
しかし、例えば、データフレームの数字に対して、色分けしたりした、データフレームだと、上記プログラムでは、上手くいきませんでした。(エラーは出ませんでしたが、色が取れてしまいました)この場合、どうすれば、よいでしょう?
実現したいこと
パンダスで、作った、色分けされたデータフレームを図形データに変換したい。
発生している問題・エラーメッセージ
特にエラーは、でないので、恐らく文法的な間違いはないのかも知れませんが、
もともと、セルを色で、塗っていたものが、pingにすると、落ちてしまう。
エラーメッセージ
該当のソースコード
df = pd.DataFrame({
'名前':['A','B','C','D','E','F'],
'値':[0.09,0.1,0.8,0.2,0.7,0.1]})[['名前','値']]
def color_background_lightgreen(val):
color = 'dodgerblue' if val > 0.8 else ( 'lightskyblue' if val <= 0.8 and val > 0.6 else ('plum' if val <= 0.4 and val >0.2 else ('deeppink'if val <=0.2 and val>=0 else '' ))) #1より大なら薄緑、0.75~1なら水色、0.75以下は赤
return 'background-color: %s' % color
表示
df_1 = df.style.applymap(color_background_lightgreen, subset=['値'])
print(type(df_1))
df_1.to_excel('/content/drive/My Drive/221120.xlsx')
df=pd.read_excel('/content/drive/My Drive/221120.xlsx')
fig, ax = plt.subplots(figsize=(2,2))
ax.axis('off')
ax.axis('tight')
ax.table(cellText=df.values,
colLabels=df.columns,
loc='center',
bbox=[0,0,1,1])
plt.savefig('/content/drive/My Drive/table.jpeg')
python
試したこと
これは、プログラム最後の方で以下のようなプログラムなので色の情報など
どこにもありません。なので、結果的に、色が落ちてしまうのも当然かも知れませんね。
ax.table(cellText=df.values, …値
colLabels=df.columns, …コラム名
loc='center', …中央揃い
これは、Styler'フォーマットで、通常のデータフレームの形式とは
異なるということまでは調べて分かりました。恐らく、色情報も
含めるパラメーターがあるのでは、と思いますが、それ以上の
ことはわかりませんでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/11/25 15:13
2022/11/25 23:26