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² 我研究了ColorFunction,但这只是为轮廓线之间的区域着色。
我无法让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当我意识到你比我早一个小时解决了问题后,我删除了我的解决方案(几乎与你的相同)。