首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Mathematica中使用不同的颜色为特定点上色

在Mathematica中使用不同的颜色为特定点上色
EN

Stack Overflow用户
提问于 2011-10-29 10:56:16
回答 3查看 2.3K关注 0票数 8

Mathematica命令的输出

代码语言:javascript
运行
复制
ListPointPlot3D[
  Join @@ Table[{x, y, 0}, {x, -6, 6, 1}, {y, -6, 6, 1}], 
  PlotStyle -> PointSize[0.02]]

如下图所示。

我想将点(0,0)和(1,2)涂成红色。如何修改上面的命令?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-10-29 11:05:10

一种非常简单和直接的方法是:

代码语言:javascript
运行
复制
list = Join @@ Table[{x, y, 0}, {x, -6, 6, 1}, {y, -6, 6, 1}];
pts = {{0, 0, 0}, {1, 2, 0}};

ListPointPlot3D[{Complement[list, pts], pts}, 
 PlotStyle -> PointSize[0.02]]

当然,我没有显式地指定颜色,因为下一个默认颜色是红色。但是,如果您想指定您自己的,您可以将其修改为:

代码语言:javascript
运行
复制
ListPointPlot3D[{Complement[list, pts], pts}, 
 PlotStyle -> {{Green, #}, {Blue, #}} &@PointSize[0.02]]
票数 10
EN

Stack Overflow用户

发布于 2011-10-29 22:04:30

您可以使用ListPointPlot3DColorFunction选项

代码语言:javascript
运行
复制
color[0, 0, _] = Red;
color[1, 2, _] = Red;
color[_, _, _] = Blue;

ListPointPlot3D[
  Join @@ Table[{x, y, 0}, {x, -6, 6, 1}, {y, -6, 6, 1}], 
  PlotStyle -> PointSize[0.02],
  ColorFunction -> color, ColorFunctionScaling -> False]

包含ColorFunctionScaling -> False选项非常重要,否则传递给颜色函数的x、y和z坐标将被归一化到1的范围内。

ColorFunction还允许我们使用任意计算来定义点着色,例如:

代码语言:javascript
运行
复制
color2[x_, y_, _] /; x^2 + y^2 <= 9 = Red;
color2[x_, y_, _] /; Abs[x] == Abs[y] = Green;
color2[_, _, _] = Blue;

ListPointPlot3D[
  Join @@ Table[{x, y, 0}, {x, -6, 6, 1}, {y, -6, 6, 1}], 
  PlotStyle -> PointSize[0.02],
  ColorFunction -> color2, ColorFunctionScaling -> False]

票数 12
EN

Stack Overflow用户

发布于 2011-10-29 12:14:27

yoda展示了一个很好的方法。但是,有时直接使用图形基元会更容易。这里有一个这样的例子,尽管在这种情况下我会选择yoda的方法。

代码语言:javascript
运行
复制
Graphics3D[{
  PointSize[0.02],
  Point /@ Join @@ Table[{x, y, 0}, {x, -6, 6, 1}, {y, -6, 6, 1}] /. 
    x : _@{1, 2, 0} | _@{0, 0, 0} :> Style[x, Red]
}]
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7936709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档