Heat map + Numbers: Difference between revisions

From Wiki
Jump to navigation Jump to search
New page: c1 = {{"\!\(\*SubscriptBox[\(E\), \(sol\)]\)", "Ir", "Ru", "Sn", "Ti"}, {"\!\(\*SubscriptBox[\(IrO\), \(2\)]\)", 0.00, -0.14, 0.80, 0.37}, {"\!\(\*SubscriptBox[\(RuO\), \(2\)]\)", ...
 
No edit summary
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
c1 = {{"\!\(\*SubscriptBox[\(E\), \(sol\)]\)", "Ir", "Ru", "Sn",
go back to [[Main Page]], [[MATHEMATICA]], [[Scripts]], [[Scripts for Mathematica 8]]
  "Ti"}, {"\!\(\*SubscriptBox[\(IrO\), \(2\)]\)", 0.00, -0.14, 0.80,
  0.37}, {"\!\(\*SubscriptBox[\(RuO\), \(2\)]\)", -0.10, 0.00, 1.03,
  0.69}, {"\!\(\*SubscriptBox[\(SnO\), \(2\)]\)", 0.54, 0.43, 0.00,
  0.17}, {"\!\(\*SubscriptBox[\(TiO\), \(2\)]\)", -0.71, 0.63, 0.62,
  0.00}}(*Coloured Grid*)


c2 = {{"0.00", -0.14, "0.80", 0.37}, {"-0.10", "0.00", 1.03,
First we write down the First Matrix, in which every number will be substituted by a color
  0.69}, {0.54, 0.43, "0.00", 0.17}, {-0.71, 0.63, 0.62,
  "0.00"}}(*Numbered Grid*)


n1 = c1[[2 ;; All, 2 ;; All]] (*Numerical Part of the Coloured Grid*)
N.B. The table contains also the Legend.


l1 = c1[[2 ;; All, 1]] (*Width of a line*)
  c1 = {
        {"Esol", "Ir", "Ru", "Sn", "Ti"},
        {"IrO2", 0.00, -0.14, 0.80, 0.37},
        {"RuO2", -0.10, 0.00, 1.03, 0.69},
        {"SnO2", 0.54, 0.43, 0.00, 0.17},
        {"TiO2", -0.71, 0.63, 0.62, 0.00}
        }


p1 = c1[[1, 2 ;; All]] (*Height of a column*)
Second, we write down a Second Matrix, in which the numbers will be written over the colored tables


ImageCompose[
N.B. It's the same matrix as the first but limited to the numbers; The numbers ending with a zero have to be written between "", otherwise they will be rounded on the final figure (0.00 becomes 0.)
ArrayPlot[n1, ColorFunction -> "Rainbow",  
 
  ColorFunctionScaling -> True, Frame -> True,  
  c2 = {
  FrameStyle -> Opacity[0], AspectRatio -> 0.737,  
        {"0.00", -0.14, "0.80", 0.37},
  FrameTicks -> {{Transpose[{Range[Length[l1]], l1}], None}, {None,  
        {"-0.10", "0.00", 1.03, 0.69},
    Transpose[{Range[Length[p1]], p1}]}},
        {0.54, 0.43, "0.00", 0.17},
  FrameTicksStyle ->  
        {-0.71, 0.63, 0.62, "0.00"}
  Directive[Opacity[1], Bold, FontSize -> 60, FontFamily -> "Times"],
        }
  Mesh -> All, MeshStyle -> White, ImageSize -> 1000],
 
GraphicsGrid[c2, BaseStyle -> {"Times", 45, Bold, White},  
In alternative you can import the matrix from a text file
  AspectRatio -> 0.75, ImageSize -> 780] , {580, 310}]
 
  c1 = Import ["path/file.csv"]
 
Then we isolate the numerical part of the first matrix
 
  n1 = c1[ [2;;All,2;;All] ]
 
And we assign the variables for the Colored table
 
  l1 = c1[ [2;;All,1] ]
  p1 = c1[ [1,2;;All] ]
 
Finally with the ImageCompose function, we overimpose the numbered table to the colored one
 
  ImageCompose[
     
      ArrayPlot[n1, ColorFunction -> "Rainbow",  
        ColorFunctionScaling -> True, Frame -> True,  
        FrameStyle -> Opacity[0], AspectRatio -> 0.737,  
        FrameTicks -> {{Transpose[{Range[Length[l1]], l1}], None}, {None,  
        Transpose[{Range[Length[p1]], p1}]}},
        FrameTicksStyle ->  
            Directive[Opacity[1], Bold, FontSize -> 60, FontFamily -> "Times"],
        Mesh -> All, MeshStyle -> White, ImageSize -> 1000],
     
      GraphicsGrid[c2, BaseStyle -> {"Times", 45, Bold, White},  
        AspectRatio -> 0.75, ImageSize -> 780] , {580, 310}
      ]

Latest revision as of 15:41, 6 July 2012

go back to Main Page, MATHEMATICA, Scripts, Scripts for Mathematica 8

First we write down the First Matrix, in which every number will be substituted by a color

N.B. The table contains also the Legend.

  c1 = {
       {"Esol", "Ir", "Ru", "Sn", "Ti"}, 
       {"IrO2", 0.00, -0.14, 0.80, 0.37}, 
       {"RuO2", -0.10, 0.00, 1.03, 0.69}, 
       {"SnO2", 0.54, 0.43, 0.00, 0.17}, 
       {"TiO2", -0.71, 0.63, 0.62, 0.00}
       }

Second, we write down a Second Matrix, in which the numbers will be written over the colored tables

N.B. It's the same matrix as the first but limited to the numbers; The numbers ending with a zero have to be written between "", otherwise they will be rounded on the final figure (0.00 becomes 0.)

  c2 = {
       {"0.00", -0.14, "0.80", 0.37}, 
       {"-0.10", "0.00", 1.03, 0.69}, 
       {0.54, 0.43, "0.00", 0.17}, 
       {-0.71, 0.63, 0.62, "0.00"}
       }

In alternative you can import the matrix from a text file

  c1 = Import ["path/file.csv"]

Then we isolate the numerical part of the first matrix

  n1 = c1[ [2;;All,2;;All] ] 

And we assign the variables for the Colored table

  l1 = c1[ [2;;All,1] ] 
  p1 = c1[ [1,2;;All] ] 

Finally with the ImageCompose function, we overimpose the numbered table to the colored one

  ImageCompose[
     
     ArrayPlot[n1, ColorFunction -> "Rainbow", 
        ColorFunctionScaling -> True, Frame -> True, 
        FrameStyle -> Opacity[0], AspectRatio -> 0.737, 
        FrameTicks -> {{Transpose[{Range[Length[l1]], l1}], None}, {None, 
        Transpose[{Range[Length[p1]], p1}]}},
        FrameTicksStyle -> 
           Directive[Opacity[1], Bold, FontSize -> 60, FontFamily -> "Times"],
        Mesh -> All, MeshStyle -> White, ImageSize -> 1000],
     
     GraphicsGrid[c2, BaseStyle -> {"Times", 45, Bold, White}, 
        AspectRatio -> 0.75, ImageSize -> 780] , {580, 310}
     ]