I have a matrix that contains numbers in different orders of magnitude and I would like to plot it using ArrayPlot
.
For example purposes I create the matrix here, but actually it is not a function, so I cannot use DensityPlot
.
someTable =
Table[Table[
PDF[ChiDistribution[s],
xx], {s, {.5, .75, 1.0, 1.5, 2.5}}], {xx, {10*^-3, 10*^-2,
0.1, 2.0, 5.0}}]
I compute the max and min values:
{minran, maxran} = {Min[someTable], Max[someTable]}
(*Out: {7.73082*10^-7, 4.63842} *)
ArrayPlot[(randomTable), FrameStyle -> Opacity[0],
RotateLabel -> False, FrameTicksStyle -> Opacity[1],
ImageSize -> 800,
PlotLabel -> Style[#, 21, FontColor -> Black] &@("Some Matrix"),
ImageMargins -> 10, ColorFunction -> ColorData["Rainbow"],
ColorFunctionScaling -> True,
PlotLegends ->
Placed[BarLegend[{"Rainbow", {minran, maxran}},
LegendMarkerSize -> 500,
LabelStyle -> Directive[Black, 25, FontFamily -> "Times"]], {1.0,
0.5}]]
Changing to MatrixPlot
and ColorFunctionScaling
to False
, I get:
I just want the different orders of magnitude to be visible with a nice color gradient. I have searched the documentation and S.E. and have found nothing similar. Just some answers for Density or ContourPlot
.
I also would like to know why in the second case I see the FrameTicks
Labels and in the first case they disappear.