2012-03-24 6 views
1

私は{x,y,z}という値のリストを持っており、それを可視化するためにListDensityPlotを使用しています。私はMeshFunctions->{#3&}のようなもので輪郭を描きたい。プロットのMathematica z値メッシュ

ListDensityPlot[data, PlotRange->{0, 350}, Mesh->{10}, MeshFunctions->{#3 &}] 

しかし、私は等高線の値が(​​350)で最大範囲までzの最小値から指数関数的に成長したい:これは私が今持っているものです。それ、どうやったら出来るの?ありがとう!

答えて

1

Meshに1つの数字(10など)を指定すると、均等な間隔で多くの輪郭が求められます。しかし、値のリストを与えると、それらのポイントで等高線が描画されます。

だから私たちは今、必要なのは10個の数字(のはn数字を言わせて)、最小値から指数関数的に増加(minそれを呼び出す)最大(maxそれを呼び出す)のリストです。

Table[ 
    min Exp[i Log[max/min]/(n - 1)], 
    {i, 0, n - 1} 
] 

だからあなたの問題を解決するには、次のとおりです:

min = Min[data[[All, 3]]]; 
ListDensityPlot[ 
    data, 
    PlotRange->{0, 350}, 
    Mesh->{Table[ 
     min Exp[i Log[350/min]/9], 
     {i, 0, 9} 
    ]}, 
    MeshFunctions->{#3 &} 
] 

注ことを確認Tableコールの周りに余分な括弧、証明は演習として残して - 私たちは、このようにそれを生成することができます値のリストは単一のメッシュの仕様です。

+2

あなたは[mathematica.se]で私たちに参加することに興味がありますか? – rcollyer

+2

おそらくそうではありません。私は、プログラミング言語が自分のサイトよりもStack Exchangeタグを持つ方が理にかなっていると思う。 – Etaoin

+1

それぞれに自分自身。しかし、Mathematicaの優れた部分は、[ここ](http://discuss.area51.stackexchange.com/a/3750/37670)などのように、本質的にプログラミングではないことを指摘したいと思います。[tag:ラテックス]、Mathematicaの質問は、話題にならないために定期的に閉じられています。 – rcollyer

関連する問題