使用 Plt.Text 更改数字的精度

Tor*_*ric 1 python precision plot matplotlib

我正在使用 Matplotlib 中的 plt.text 函数在地图上绘制数据。大多数图的数据特征值小于 1,并且图的精度为 7。

在此处输入图片说明

生成图像的代码片段如下:

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()
Run Code Online (Sandbox Code Playgroud)

目标是将所有图的精度限制为两个 (X.XX)。我遵循了上一篇文章中列出的代码,但是在实施时,绘图的精度没有变化。本次代码改动如下:

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

关于我当前代码哪里出错的任何建议?

GWW*_*GWW 5

下面的代码对我有用:

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)
Run Code Online (Sandbox Code Playgroud)

输出:

输出