Изменить точность чисел с помощью Plt.Text - PullRequest
0 голосов
/ 24 января 2019

Я строю данные на карте, используя функцию plt.text в Matplotlib. Данные для большей части графика имеют значения меньше 1, а графики имеют точность 7.

enter image description here

Ниже приведен фрагмент кода, который генерирует изображение:

fh = Dataset('/path/to/file/icy.nc', mode='r')
point_list = zip(lat,lon)
dataset_list = []
for i, j in point_list:
    dataset_list.append(fh.variables['ICTHICK'][:][i,j])

for x, y, z in zip(text_lon, text_lat, dataset_list):
    if z in range(-6,6):
        plt.text(x, y, z, color='white', fontsize=12, fontweight='semibold', horizontalalignment='center', transform=crs.LambertConformal())
    #elif:Some other color range here!
    else:
        plt.text(x, y, z, fontsize=12, fontweight='semibold', horizontalalignment='center', transform=crs.LambertConformal()

Цель состоит в том, чтобы ограничить точность всех графиков до двух (X.XX). Я следовал коду, изложенному в предыдущем посте , однако при реализации нет никаких изменений в точности графиков. Это изменение кода выглядит следующим образом:

plt.text(x, y, r'{0:.2f}'.format(*dataset_list), color='white', fontsize=12, fontweight='semibold', horizontalalignment='center', transform=crs.LambertConformal())

Какой-нибудь совет относительно того, где мой текущий код ошибается?

1 Ответ

0 голосов
/ 24 января 2019

Код ниже работает для меня:

import pylab as plt
import random

fig, ax = plt.subplots(1, 1, figsize=(5, 5))
for i in range(1, 21):
    #Replace random.random() with z in your case
    ax.text(i, i, "{:.2f}".format(random.random()))
ax.set_xlim(0, 25)
ax.set_ylim(0, 25)

Вывод:

Output

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...