我想在python中创建一个简单的信息图. Matplotlib似乎有很多功能,但没有什么能覆盖我简单的热图网格示例.
信息图是一个简单的5 x 5网格,数字在0到1之间.然后网格方块将被着色为0 =白色1 =蓝色0.5是淡蓝色.
可能会使用Matplotlib,但我无法找到或组合任何能够深入了解这一点的示例.
任何见解,示例代码或库方向都会有所帮助
问候
马特
解决方法:
这取决于您拥有图形后需要做什么,Matplotlib允许您以交互方式在屏幕上显示图形,将其保存为矢量,pdf或位图格式等等.
如果你选择这个框架,imshow会做你需要的,这是一个例子:
# Just some data to test:
from random import gauss
a = [[gauss(0, 10) for i in xrange(0, 5)] for j in xrange(0,5)]
from pylab import * # or just launch "IPython -pylab" from the command line
# We create a custom colormap:
myblue = cm.colors.LinearSegmentedColormap("myblue", {
'red': [(0, 1, 1), (1, 0, 0)],
'green': [(0, 1, 1), (1, 0, 0)],
'blue': [(0, 1, 1), (1, 1, 1)]})
# Plotting the graph:
imshow(a, cmap=myblue)
有关colormap check this link的更多详细信息,这里是link for imshow – 或者只是使用help(colors.LinearSegmentedColormap)和help(imshow).
alt text http://img522.imageshack.us/img522/6230/bluep.png
(注意,这是标准选项的结果,您可以添加网格,更改过滤等).
编辑
however I’m looking to display the
numbers in the grid
为了简单起见:
for i in xrange(0,5):
for j in xrange(0,5):
text(i, j,
"{0:5.2f}".format(a[i][j]),
horizontalalignment="center",
verticalalignment="center")