Добавьте разделитель запятых в карту температур морского побережья, используя set_text из matplotlib, и держите знак доллара - PullRequest
1 голос
/ 05 марта 2019

Я хотел бы добавить разделитель запятых к аннотации, создаваемой следующим кодом, сохраняя знак доллара и используя функции set_text() и get_text().Я вижу, что t возвращает «текстовый объект», но я не уверен, как изменить объект, чтобы получить желаемый результат.

Как добавить разделитель запятых, сохраняя при этом знак доллара и используя for t in ax.textsпетля?

код:

import matplotlib.pyplot as plt
import pandas as pd
from random import randint
import seaborn as sns
#
datas = []
#
for item in list("ABC"):
    for year in [2012, 2013, 2014, 2015, 2016, 2017]:
        x = randint(1000, 2000)
        datas.append([item, year, x])

df = pd.DataFrame(datas, columns = ["Item", "Year", "Value"])
df = df.pivot("Item", "Year", "Value")
ax = sns.heatmap(df, linewidths = 0.5, xticklabels = True, yticklabels = True, cmap = "OrRd", annot = True, fmt = "d")

for t in ax.texts:
    t.set_text("$" + t.get_text())

plt.show()

enter image description here

1 Ответ

3 голосов
/ 05 марта 2019

Формат строки Python фактически имеет эту встроенную функцию:

'${:,d}'.format(1000)

дает '$1,000'

Так что вы можете попробовать

t.set_text('${:,d}'.format(int(t.get_text())))
...