matplotlib 根据数据值绘图

c3frrgcw  于 2022-11-15  发布在  其他
关注(0)|答案(2)|浏览(207)

我是python上的mathplotlib库的新手,我有一个包含法国城市的数据集,上面有纬度和经度,每一个都有一个0到10之间的标记,标记越高越好
我想在Map上绘制此坐标,并根据标记更改绘制颜色(0 =红色,10 =绿色)。
我设法画出了法国Map,但只用了同样的颜色,而且没有考虑到标记。我不知道如何在情节中使用标记。
在我的代码中,TMP是我的数据集,包含:

  • COM_LAT(纬度)
  • COM_LONG(经度)
  • COM_MARK(0到10之间的双精度浮点数)

有人能帮帮我吗?
提前致谢

import matplotlib
import matplotlib.pyplot as plt
import geopandas as gp
import plotly.express as px

tmp_geo = gp.GeoDataFrame(TMP,geometry = gp.points_from_xy(TMP.COM_LONG,TMP.COM_LAT))
axis = tmp_geo.plot(color = 'yellow', edgecolor = 'black')
tmp_geo.plot(ax = axis, color = 'blue')
ldxq2e6h

ldxq2e6h1#

您可以将该列添加为颜色标记,如下所示:
tmp_geo.plot(ax = axis, c=tmp_geo.COM_MARK)
注意:请确保先删除color参数

lmyy7pcs

lmyy7pcs2#

您要查找的参数是column,它指定应将哪一列用作值。
另外,由于我认为没有从红色到绿色的色彩Map表,因此您需要创建一个

from matplotlib.colors import LinearSegmentedColormap

# Creates a colormap that goes from red (r) to green (g) through yellow (y)
cmap=LinearSegmentedColormap.from_list('rg',["r", "y", "g"], N=256)

然后将地块线替换为

tmp_geo.plot(ax = axis, column=tmp_geo.COM_MARK, cmap=cmap)

注意:我不认为c参数在这里起作用。至少在我的系统中,它是完全被忽略的,并且点的颜色与它没有关系。

相关问题