Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Plt.Text更改数字精度_Python_Matplotlib_Plot_Precision - Fatal编程技术网

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

Python 使用Plt.Text更改数字精度,python,matplotlib,plot,precision,Python,Matplotlib,Plot,Precision,我正在使用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

我正在使用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()
目标是将所有绘图的精度限制为两个X.XX。我遵循了上一篇文章中列出的代码,但是在实现之后,绘图的精度没有变化。本规范变更如下:

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

关于我当前的代码哪里出错,有什么建议吗?

下面的代码对我很有用:

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)
输出:


以下代码适用于我:

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)
输出:


您确定不想使用z,如在plt.textx,y,r'{0:.2f}.formatz?@ImportanceOfBeingErnest中一样,这就是问题所在。我删除了*并将z表示为格式化变量,它工作得非常好。非常感谢!您确定不想使用z,如在plt.textx,y,r'{0:.2f}.formatz?@ImportanceOfBeingErnest中一样,这就是问题所在。我删除了*并将z表示为格式化变量,它工作得非常好。非常感谢!这也非常有效,代码示例非常受欢迎!如ImportantoBeingernest所述,这种格式或对上述代码的修改将产生所需的结果。这也非常有效,代码示例非常受欢迎!此格式或ImportantoBeingernest所述的对上述代码的修改将产生所需的结果。