0
我正在绘制与pyplot.pcolormesh
的网格,并且我想自定义颜色条上的标记标记。我列出了一个勾号位置列表,并提供了一个应该与勾号位置相匹配的勾号标签列表,但我并不知道哪些勾号实际上会包含在内,因为我不知道最大值和最小值数据。问题是我提供的第一个标签总是在第一个可见的勾号中使用,无论这是否是我列表中的第一个勾号。颜色条标记与标记位置不匹配
工作实施例:
import matplotlib.pyplot as plt
import numpy as np
a = np.arange(1,10).reshape(3,3)
m = plt.pcolormesh(a)
c = plt.colorbar(m)
c.set_ticks(np.arange(11))
c.set_ticklabels(np.arange(11))
plt.savefig('mesh.png')
此代码将产生图像的下方,并且这里的问题是,最暗蓝色标有0,而在该单元格的值实际上是1,并且类似地所有其它标签被移动了1.
这是一个错误还是一个特性,如果它是一个特性,我如何确保这些标签能以优雅的方式匹配?我想我会处理一些关于数据的测试,并试图找出哪个嘀嗒声是第一个可见的,等等,但这似乎不是pythonic。
的事情是,我需要改变ticklabels的可读性,因为我展示对数尺度的厚度,所以我想上的标签,说10^-1毫米, 10^-2毫米等,但我通过查询数据来查找最大值和最小值,然后仅生成将使用的标签。 – Tor
您还可以使用'格式化程序'来获取刻度线,它可以读取刻度线的值,然后将其修改为正确的格式。但是,你只需要定义格式而不是数值本身。 http://matplotlib.org/examples/pylab_examples/custom_ticker1.html –