| Author |
Comment/Response |
Christoph Popa
|
05/20/10 12:43pm
I have the following problem: I have a dataset in matrix form and want to create a double logarithmic ListContourPlot of it. Since Mathematica does not seam to have a built-in function for that, I tried to do it manually - without success:
As an example, I have the matrix
data = Table[i+j,{i,1,10},{j,1,10}];
My first attempt was to generate an interpolating function and thereafter create a ContourPlot of it, i.e.
{min,max} = {10^(-20),0.005};
interpol = ListInterpolation[data,{{min,max},{min,max}}];
plot1 = ContourPlot[interpol[10^x,10^y],{x,-5,-2},{y,-5,-2}]
This actually works for this example - but for some reason Mathematica fails to generate a proper interpolating function for my actual dataset. Therefore I tried it differently:
newdata = Flatten[Table[{Log[10,min+(i-1)max/9],Log[10,min+(j-1)max/9],data[[i,j]]},{i,1,10},{j,1,10}],1];
plot2 = ListContourPlot[newdata,PlotRange->{{-5,-2},{-5,-2}}]
There were no error messages, but plot1 and plot2 should be identical, which they are not. It seems that Mathematica arbitrarily changes the matrix elements (data[[i,j]]).
I'm very thankful for any help!
URL: , |
|