簡體   English   中英

"Seaborn 熱圖貨幣格式"

[英]Seaborn Heatmap Currency Format

給定以下熱圖:

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
%matplotlib inline
df = pd.DataFrame(
      {'A' : ['A', 'A', 'B', 'B','C', 'C', 'D', 'D'],
       'B' : ['A', 'B', 'A', 'B','A', 'B', 'A', 'B'],
       'C' : [22000, 4000, 500, 20000, 0, 3000, 90000, 1000],
       'D' : [6000, 62000, 7000, 700, 30000, 30, 1000, 1000]})

df=df.pivot('A','B','C')
fig, ax = plt.subplots(1, 1, figsize =(4,6))

sns.heatmap(df, annot=True, linewidths=0, cbar=False)
plt.show()

我希望將值顯示為以千為單位的貨幣,如下所示:$22K

獎金問題:顯示為千位小數,如下所示:$8.9K

提前致謝!

df["C"] = df["C"].map(lambda x: "${:,.1f}".format(x\/1000.))<\/code>

"

您可以將字符串轉換應用於數據框中的每個元素,並將其用於注釋:

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd

df = pd.DataFrame(
    {'A': ['A', 'A', 'B', 'B', 'C', 'C', 'D', 'D'],
     'B': ['A', 'B', 'A', 'B', 'A', 'B', 'A', 'B'],
     'C': [22000, 4000, 500, 20000, 0, 3000, 90000, 1000],
     'D': [6000, 62000, 7000, 700, 30000, 30, 1000, 1000]})

df = df.pivot('A', 'B', 'C')
df_formatted = df.applymap(lambda val: f'${val:,.0f}')

fig, ax = plt.subplots(figsize=(4, 6))
sns.heatmap(df, annot=df_formatted, fmt='', linewidths=0, cbar=False, ax=ax)
plt.show()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM