Wolfram mathematica 轮廓图:设置轮廓线的样式
我可以绘制对应于隐式方程的曲线:Wolfram mathematica 轮廓图:设置轮廓线的样式,wolfram-mathematica,Wolfram Mathematica,我可以绘制对应于隐式方程的曲线: ContourPlot[x^2 + (2 y)^2 == 1, {x, -1, 1}, {y, -1, 1}] 但是我找不到根据点的位置给轮廓线上色的方法。更准确地说,我想根据x²+y²函数[{x,y,z},x^2+y^2红色], 等高线图[x^2+(2y)^2==1,{x,-1,1},{y,-1,1}, 区域函数->函数[{x,y,z},x^2+y^2>=.5], 轮廓样式->绿色] }] 可能是这样的 pl = ContourPlot[x^2 + (2
ContourPlot[x^2 + (2 y)^2 == 1, {x, -1, 1}, {y, -1, 1}]
但是我找不到根据点的位置给轮廓线上色的方法。更准确地说,我想根据x²+y²我无法让ContourStyle接受位置相关的表达式。您可以使用
RegionFunction
将绘图一分为二:
Show[{
ContourPlot[x^2 + (2 y)^2 == 1, {x, -1, 1}, {y, -1, 1},
RegionFunction -> Function[{x, y, z}, x^2 + y^2 < .5],
ContourStyle -> Red],
ContourPlot[x^2 + (2 y)^2 == 1, {x, -1, 1}, {y, -1, 1},
RegionFunction -> Function[{x, y, z}, x^2 + y^2 >= .5],
ContourStyle -> Green]
}]
Show[{
等高线图[x^2+(2y)^2==1,{x,-1,1},{y,-1,1},
区域函数->函数[{x,y,z},x^2+y^2<.5],
轮廓样式->红色],
等高线图[x^2+(2y)^2==1,{x,-1,1},{y,-1,1},
区域函数->函数[{x,y,z},x^2+y^2>=.5],
轮廓样式->绿色]
}]
可能是这样的
pl = ContourPlot[x^2 + (2 y)^2 == 1, {x, -1, 1}, {y, -1, 1}]
points = pl[[1, 1]];
colorf[{x_, y_}] := ColorData["Rainbow"][Rescale[x, {-1, 1}]]
pl /. {Line[a_] :> {Line[a, VertexColors -> colorf /@ points[[a]]]}}
产生
这并不能直接解决您的问题,但我相信这是一个有趣的问题 可以使用我认为是未记录的格式,即围绕
线
对象的函数,从轮廓图
内逐步为线上色。在内部,这与Heike所做的类似,但她的解决方案使用顶点编号来找到匹配的坐标,从而允许按空间位置(而不是沿直线的位置)设置样式
ContourPlot[
x^2 + (2 y)^2 == 1, {x, -1, 1}, {y, -1, 1},
BaseStyle -> {12, Thickness[0.01]},
ContourStyle ->
(Line[#, VertexColors -> ColorData["DeepSeaColors"] /@ Rescale@#] & @@ # &)
]
对于一些不太熟练的人来说,信息越少越好。在我偶然发现罗利格编辑过的答案之前,我一直在浪费时间浏览设置等高线颜色的方法。我只是需要一种风格
Show[{ContourPlot[
x^2 + 2 x y Tan[2 # ] - y^2 == 1, {x, -3, 3}, {y, -3.2, 3.2},
ContourStyle -> Green] & /@ Range[-Pi/4, Pi/4, .1]},
Background -> Black]
谢谢你的回答。它使用户能够使用连续的颜色,这是对其他答案的一个很好的补充。+1当我意识到你比我早一个小时解决了问题后,我删除了我的解决方案(几乎与你的相同)。