我想將滴答和標籤添加到顏色欄,但它似乎不會顯示在輸出中。我嘗試了兩種方法(如下面的代碼所示)。第二種方法是按照Stack Overflow的另一個問題所示:How to add Matplotlib Colorbar Ticks。無法添加matplotlib colorbar刻度
我必須忽略一些非常簡單的東西,因爲我是Matplotlib和Python的初學者。
我已經設法獲得顏色欄,但我想要的蜱沒有出現。這裏的任何幫助將不勝感激,因爲我在嘗試和搜索後一直堅持了幾個小時。 這裏是我用於在底圖上使用hexbin生成熱圖的代碼。
import pandas as pd
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
from matplotlib.colors import LinearSegmentedColormap
from matplotlib import cm
#Loading data from CSV file
DATA_FILE = '....../Population_data.csv'
roc_data = pd.read_csv(DATA_FILE)
roc_data.head()
#Creating figure window
fig = plt.figure(figsize=(14,10))
ax = fig.add_subplot(111)
#Drawing the basemap
m = Basemap(projection='merc', lat_0=43.12, lon_0=-77.626,
resolution = 'i',llcrnrlon=-78.236,
llcrnrlat=42.935,
urcrnrlon=-77.072,
urcrnrlat=43.349)
m.drawcoastlines()
m.drawcounties(zorder=20, color='red')
m.drawcountries()
m.drawmapboundary()
#plotting the heatmap using hexbin
x, y = m(roc_data['Longitude'].values, roc_data['Latitude'].values)
values = roc_data['Total(20-64)']
m.hexbin(x, y, gridsize = 125, bins = 'log', C = values, cmap = cm.Reds)
#Defining minimum, mean and maximum population values
max_p = roc_data['Total(20-64)'].max()
min_p = roc_data['Total(20-64)'].min()
mean_p = roc_data['Total(20-64)'].mean()
#Adding Colorbar
cb = m.colorbar(location = 'bottom', format = '%d', label = 'Population by Census Blocks')
#setting ticks
#cb.set_ticks([48, 107, 1302]) #First approach, didn't work
#cb.set_ticklabels(['Min', 'Mean', 'Max'])
cb.set_ticks([min_p, mean_p, max_p]) #Second appraoch, assumed ticks and tick labels should be same
cb.set_ticklabels([min_p, mean_p, max_p]) #from the above mentioned stackoverflow question, but did't work
plt.show()
通過使用第一種或第二種顏色條滴答方式得到的輸出是相同的。它是這樣的: Heatmap and colorbar with no ticks and labels
我想要最小,中位數和最大的人口值(48,107和1302)顯示在顏色欄上,並帶有Min,Mean和Max標籤。感謝您的時間
這正是我一直在尋找。我錯過了將值轉換爲log10,並不知道最小的顏色條實際上是log10(min + 1)。謝謝! – bartman
好極了,所以如果這回答了你的問題,請考慮[接受](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)並加註它。 – ImportanceOfBeingErnest
嗨,再次感謝您讓我知道在這裏接受答案,不知道這件事。我嘗試了upvote它,但似乎它不會公開展示,除非我的聲望超過15,儘管我的upvote會被記錄下來。當我的聲望高於15時,我會再次投票贊成。 – bartman