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 –