所以我想做这样的事情:
Generating a heat map using 3D data in matplotlib
但我不希望我的色轴连续。
我的输入数据格式为:
System.setProperty("hadoop.home.dir", "C:\\winutil\\");
换句话说,我的z值是0或1,并且永远不会介入。
我试试:
java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
但我得到的是:
看起来,contourf给了我一个连续的功能。我希望它只是显示已经在z变量中的值,而不是将函数拟合到它。我怎么能这样做?
编辑:另外,如果可能的话,我希望在灰度上有离散值(0或1)。
答案 0 :(得分:0)
您可以将levels
参数用于contour,例如levels=[0,0.5,1]
。
import numpy as np
import matplotlib.pyplot as plt
#===Load Data===#
x,y = np.meshgrid(np.arange(20),np.arange(20) )
data = np.random.randint(0,2, size=(20,20))
#===Plot===#
plt.subplot(111)
plt.contourf(x,y,data, levels=[0,0.5,1])
plt.colorbar()
plt.show()
另一种选择可能是使用imshow()
import numpy as np
import matplotlib.pyplot as plt
#===Load Data===#
x,y = np.meshgrid(np.arange(20),np.arange(20) )
data = np.random.randint(0,2, size=(20,20))
#===Plot===#
plt.subplot(111)
plt.imshow(data, interpolation="None")
plt.colorbar()
plt.show()