首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >绘制存储在二维数组中的一系列坐标

绘制存储在二维数组中的一系列坐标
EN

Stack Overflow用户
提问于 2022-09-14 23:34:26
回答 2查看 136关注 0票数 3

因此,假设我在Julia中定义了以下数组:

代码语言:javascript
运行
复制
M=[[1,1],[2,4],[3,9],[4,16],[5,25],[6,36],[7,49],[8,64],[9,81],[10,100],[11,121],[12,144]]

显然,每个元素[x,y]都遵循二次规则$y=x^2$,所以当我使用命令plot(M)绘制它时,我希望得到一个抛物线形状。

但是相反,我得到了这样的东西:

][1

我做错了什么,我应该怎么做才能得到我想要的结果--抛物线形状?

EN

回答 2

Stack Overflow用户

发布于 2022-09-15 00:09:21

来自Plots.jl文档

绘图函数有几种方法: 图(Y):将输入作为y轴的值,并生成一个单位范围为x值.

也就是说,当您将单个参数传递给plot时,参数中的值将被解释为y轴值,x轴为1, 2, 3, ...

在这里,因为M是向量的向量,所以为每个内部向量创建了一个线图。例如,[3, 9]生成一个从(1, 3)(1, 9)的线条图。

要绘制抛物线,在这种情况下,您可以:

代码语言:javascript
运行
复制
plot(first.(M), last.(M))

它将提取内部数组的每个第一个元素以形成x-轴,以及为y-轴提取每个第二个元素。

当然,如果出于其他原因不需要M作为向量向量,那么最好首先将它们创建为单独的向量。

如果M被改为Matrix (这是在Julia中创建2D数组的推荐方法),例如。

代码语言:javascript
运行
复制
julia> M
12×2 Matrix{Int64}:
  1    1
  2    4
  3    9
etc.

然后你就可以用

代码语言:javascript
运行
复制
julia> @views plot(M[:, 1], M[:, 2])

M[:, 1]获取第一列(x轴)上的所有值,在第二列(y轴)上获取相同的值,而开头的@views避免不必要地分配新的内存区域,而是直接从M本身读取和使用。

票数 4
EN

Stack Overflow用户

发布于 2022-09-15 06:06:34

有趣的是,由于绘图将元组数组处理为(x,y)点数组,所以这是可行的:

代码语言:javascript
运行
复制
plot(Tuple.(M))

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73724184

复制
相关文章

相似问题

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