假设我有一些代码可以生成2D数组,其值分别为0、1,2或3。例如
x = rand(Int8.(0:3), (4,4))
现在我想将其绘制在2D网格上,而我们为每个值分配一种颜色,例如:
0:白色,1:绿色,2:蓝色,3:红色
例:
假设我有矩阵
0 3
2 1
那么我想要以下图片:
现在我以为我可以使用热图,但是以下代码
using Plots
data = [0 3; 2 1]
heatmap(data, c=cgrad([:white, :green, :blue, :red], categorical=true))
如您所见,它沿轴“绘制”矩阵的值。轴表示我的数据有序,因此我的图像被翻转和旋转。
我怎样才能做到这一点?
你可以写例如
using Plots
heatmap(x, c=cgrad([:white, :green, :blue, :red], categorical=true))
如果要禁用轴和图例并反转行写入(使用矩阵操作):
heatmap(reverse(x, dims=1),
c=cgrad([:white, :green, :blue, :red], categorical=true),
axis=nothing, legend=:none)
或使用heatmap
kwarg(我保留了轴以表明它们已翻转)
heatmap(x, yflip=true, c=cgrad([:white, :green, :blue, :red], categorical=true))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句