Python 2.7 如何使用matplotlib和python制作表格图例

Python 2.7 如何使用matplotlib和python制作表格图例,python-2.7,matplotlib,legend,Python 2.7,Matplotlib,Legend,我正在从一个shapefile用python绘制一个choropleth映射,我想自定义该映射的图例,我正在使用下面的代码: import pandas as pd import pysal as ps import geopandas as gp import numpy as np import matplotlib.pyplot as plt pth = 'outcom.shp' tracts = gp.GeoDataFrame.from_file(pth) ax = plot_data

我正在从一个shapefile用python绘制一个choropleth映射,我想自定义该映射的图例,我正在使用下面的代码:

import pandas as pd
import pysal as ps
import geopandas as gp
import numpy as np
import matplotlib.pyplot as plt

pth = 'outcom.shp'
tracts = gp.GeoDataFrame.from_file(pth)
ax = plot_dataframe(tracts, column='Density', scheme='QUANTILES', k=4, colormap=plt.cm.Blues, legend=True)
plt.show()
此外,我正在使用一个小补丁,我发现在这里,为了可视化的传说

以下是我的结果: 但是,我需要类似的东西:

所以我现在的问题是,我怎样才能有一个定制的图例呢?你可以用一个作为图例

导入matplotlib.pyplot作为plt
将numpy作为np导入
valeur=np.array([.1,45,7])

text=[[“Faible”,"NgI按照你说的做了,但这就像地图和表格之间没有链接一样,我得到的结果显示了一张默认颜色的地图,在底部是你编码的表格1。我更新了答案,让图例使用轮廓图的颜色。我真的很感谢你的帮助,但我没有使用轮廓图,这是一张choropleth地图我使用的是:ax=plot\u数据帧(tracts,column='Density',scheme='QUANTILES',k=4,colormap=plt.cm.Blues,legend=True),数据帧不支持“级别”。我理解,但您使用的geopandas函数有点复杂,您已经提出了一个新问题,因此我决定给出一般解决方案作为此问题的答案。有关如何在实际geopandas绘图中使用此图例,请参阅。
import matplotlib.pyplot as plt
import numpy as np

valeur = np.array([.1,.45,.7])
text=[["Faible","Ng<1,5" ],["Moyenne","1,5<Ng<2,5"],[u"Elevée", "Ng>2,5"]]
colLabels = ["Exposition", u"Densité"]


tab=plt.table(cellText=text, colLabels=colLabels, 
                    colWidths = [0.2,0.2], loc='lower right', 
                    cellColours=plt.cm.hot_r(np.c_[valeur,valeur]))

plt.show()
from matplotlib import pyplot as plt
import numpy as np

a = np.sort(np.random.rand(100)).reshape(10,10)*4

levels = np.array([0,1.5,2.5,4])
sm = plt.contourf(a, levels = levels, cmap=plt.cm.hot_r )


text=[["Faible","Ng<1,5" ],["Moyenne","1,5<Ng<2,5"],[u"Elevée", "Ng>2,5"]]
colLabels = ["Exposition", u"Densité"]

col = levels[:-1] + np.diff(levels)/2.
cellcol = sm.cmap(sm.norm(np.c_[col,col]))

tax = plt.gcf().add_axes([0,0,1,1])
tab=tax.table(cellText=text, colLabels=colLabels, 
                    colWidths = [0.2,0.2], loc='lower left', 
                    cellColours=cellcol )

tax.axis("off")
plt.show()