I have a table with some data that I plot against each other, say like this.

test = Table[i + j, {i, 7}, {j, 5}];

This will give me a contourplot with x-axis ranging from 0-5 and y-axis from 0-7. However, I want the y-axis to change based on the axisrange list I have. I know I can plot those values on the axis, but I actually want the plot to scale based on the values, as the interval between the values is different for each set of values. Any ideas how to do this?



closed as unclear what you're asking by Dr. belisarius, bbgodfrey, Mr.Wizard Feb 11 '15 at 17:58

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 1
    $\begingroup$ Not entirely clear what you want, but would PlotRange be useful to you? $\endgroup$ – Sjoerd C. de Vries Feb 11 '15 at 14:47
  • $\begingroup$ Perhaps you could draw a picture of the desired output in this case $\endgroup$ – Dr. belisarius Feb 11 '15 at 14:52
  • $\begingroup$ I posted a picture showing what I want (I hope). Basically I want to scale the y-axis according to the values in my axesrange, so 1 corresponds to 0, 2 corresponds to 1.5 and so on. $\endgroup$ – matti0006 Feb 11 '15 at 15:14
  • $\begingroup$ It's still not clear what you are looking for here. If you need to scale something usually you would divide by a constant. If you need to change the plot range you need to use, ListContourPlot[test,PlotRange->{{},{}}]. Showing the output from Mathematica and explaining what its not doing and what you want fixed would make it easier to answer. $\endgroup$ – wgwz Feb 11 '15 at 16:12
  • $\begingroup$ DataRange may be it. $\endgroup$ – Sjoerd C. de Vries Feb 11 '15 at 17:34
test = Flatten[Table[{j, i, i + j}, {i, 7}, {j, 5}], 1]
axesrange = {0, 1.5, 5, 6, 9, 10, 17};
f = Interpolation[Transpose@List[Union[test[[All, 2]]], axesrange]];
GraphicsRow[{ListContourPlot[test], ListContourPlot[test /. {x_, y_, z_} :> {x, f@y, z}]}]

Mathematica graphics

  • $\begingroup$ Thanks a bundle, this looks pretty much like what I want! $\endgroup$ – matti0006 Feb 12 '15 at 15:34

Not the answer you're looking for? Browse other questions tagged or ask your own question.