flatvaluematrix={{3525206400, -0.001, 33.0746}, {3525206400, 0.005,
12786.3}, {3525206400, 0.011, 38541.}, {3525206400, 0.017,
65163.}, {3527798400, -0.001, 23.5575}, {3527798400, 0.005,
12559.3}, {3527798400, 0.011, 38463.9}, {3527798400, 0.017,
65143.1}, {3530476800, -0.001, 15.0909}, {3530476800, 0.005,
12299.7}, {3530476800, 0.011, 38387.1}, {3530476800, 0.017,
65126.1}, {3533068800, -0.001, 8.58963}, {3533068800, 0.005,
12022.3}, {3533068800, 0.011, 38318.7}, {3533068800, 0.017,
65113.8}, {3535747200, -0.001, 4.53454}, {3535747200, 0.005,
11762.1}, {3535747200, 0.011, 38267.4}, {3535747200, 0.017,
65106.6}, {3538425600, -0.001, 1.87709}, {3538425600, 0.005,
11474.7}, {3538425600, 0.011, 38224.9}, {3538425600, 0.017,
65102.2}, {3540931200, -0.001, 0.562167}, {3540931200, 0.005,
11178.4}, {3540931200, 0.011, 38195.7}, {3540931200, 0.017,
65100.3}, {3543609600, -0.001, 0.110118}, {3543609600, 0.005,
10895.5}, {3543609600, 0.011, 38179.8}, {3543609600, 0.017,
65099.8}, {3546201600, -0.001, 0.00755001}, {3546201600, 0.005,
10603.2}, {3546201600, 0.011, 38172.9}, {3546201600, 0.017,
65099.6}, {3548880000, -0.001, 0.0000273622}, {3548880000, 0.005,
10312.}, {3548880000, 0.011, 38171.4}, {3548880000, 0.017,
65099.6}, {3551472000, -0.001, 1.06357*10^-11}, {3551472000, 0.005,
10119.2}, {3551472000, 0.011, 38171.3}, {3551472000, 0.017,
65099.6}, {3554150400, -0.001, 0.}, {3554150400, 0.005,
0.}, {3554150400, 0.011, 0.}, {3554150400, 0.017, 0.}};
ListPlot3D[flatvaluematrix]
Kaboom!
This fails under both Windows Mathematica 8.01 and Windows Mathematica 7.
Can anybody help?
Thank you.
MS
(For those who are curious, the first number in the list is a date, the
second is an interest rate spread, and the third is the value of a
financial instrument on the specified date and the given spread).
ListPlot3D::ntri: The data generates an inconsistent triangulation. You
can perturb the data to make it valid. >>
and Mathematica returns the unevaluated input. I suspect that the
problem is the discrepancy between the
range of y-values and the range of x-values which differ by a order 9.
One way to get the plot to word is to
do something like this
maxmin = {Min[#], Max[#]} & /@ Transpose[flatvaluematrix][[{1, 2}]];
rescaled =
Transpose[{Rescale[flatvaluematrix[[All, 1]]],
Rescale[flatvaluematrix[[All, 2]]],
flatvaluematrix[[All, 3]]}];
gr = ListPlot3D[
rescaled, PlotRange -> All];
gr /. GraphicsComplex[a__] :>
GeometricTransformation[GraphicsComplex[a],
RescalingTransform[{{0, 1}, {0, 1}, {0, 1}},
Append[maxmin, {0, 1}]]]
This basically rescales the x,y-values of the data points so that they
lie in the range {0,1}, plots the rescaled
points, and then stretches the graph in the x and y-direction back to
the original values of x and y.
Heike
flatvaluematrixnew=Map[#*{0.000001,1,1}&,flatvaluematrix]
ListPlot3D[flatvaluematrixnew]
Works just fine. Can you scale this way and still get useful information?
ListPlot[] has no problem which is odd.
p1=Map[ListPlot[#,Joined->True]&,flatvaluematrix];
Show[p1]
Maybe it is a limitation in the surfacing algorithms. Not sure...
Paul McHale | Electrical Engineer, Energetics Systems | Excelitas Technologies Corp.
Phone: +1 937.865.3004 | Fax: +1 937.865.5170 | Mobile: +1 937.371.2828
1100 Vanguard Blvd, Miamisburg, Ohio 45342-0312 USA
Paul....@Excelitas.com
www.excelitas.com
Please consider the environment before printing this e-mail.
This email message and any attachments are confidential and proprietary to Excelitas Technologies Corp. If you are not the intended recipient of this message, please inform the sender by replying to this email or sending a message to the sender and destroy the message and any attachments.
Thank you
Mathematica 8.0.1.0 on MacOS 10.6.8 does not crash, but it yields an odd error
message:
"ListPlot3D::ntri: The data generates an inconsistent triangulation. You
can perturb the data to make it valid."
The complaint basically means that the dataset cannot be interpreted as
the description of a surface. Plot3D does not do point clouds.
Do you mean to plot points? If so, you need an added step, using Map[]
to make these into points, and Graphics to show them. For instance:
pointlist=Map[Point[#]&,flatvaluematrix];
Graphics3D[pointlist]
Joe Gwinn
I can reproduce your observation in 7.0.1, but in 8.0.1 there is no crash
and the input returns unevaluated with the message:
ListPlot3D::ntri: The data generates an inconsistent triangulation. You
can perturb the data to make it valid.
But I am not quite sure what one is expected to do about this in practice.
However, plotting an interpolation of the data does work (though the
output seems rather uninteresting):
int = Interpolation[flatvaluematrix];
Plot3D[
int[x, y],
{x, Sequence @@ int[[1, 1]]} // Evaluate,
{y, Sequence @@ int[[1, 2]]} // Evaluate
]
(Mathematica 5.2 produces a plot in response to your input, although it
seems to be incorrect.)