我有一组(x,y)数据点,每个点都有一个附加值。我想创建一个热图,它使用附加值来确定颜色,并使用颜色强度/透明度来确定频率。
有没有什么我可以用matplotlib实现的方法?谢谢!
编辑:我正在处理交通事故数据。(x,y)点只是纬度和经度对,每个点都有对应的事故严重程度值。理想的绘图应该使用颜色来表示严重性,然后使用透明度来表示位置点的频率。例如,事故数量较少但严重程度较高的地方将为透明红色,而事故数量较高但严重事故不多的地方将为不透明蓝色。
发布于 2016-04-26 08:16:57
试试这个:
import matplotlib.pyplot as plt
from matplotlib import cm
f = plt.figure()
ax = f.add_subplot(111)
ax.pcolormesh(x,y,f(x,y), cmap = cm.Blues)
f.show()你可以在这里看到一个例子http://matplotlib.org/examples/images_contours_and_fields/pcolormesh_levels.html
如果你需要更多信息,请告诉我。或者如果我假设错了什么。
发布于 2016-04-26 08:47:24
您可以使用numpy.histogram2d.只需将x设置为x值列表,将y设置为y值列表,将weights设置为热点图值。
import numpy as np
import matplotlib.pyplot as plt
# make sure to set x, y, and weights here
heatmap, _, _ = np.histogram2d(x, y, weights=weights)
plt.clf()
plt.imshow(heatmap)
plt.show()https://stackoverflow.com/questions/36852772
复制相似问题