gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 01:49:46 25 4
gpt4 key购买 nike

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

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).

但是我得到的是这样的:[ enter image description here ][1

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

最佳答案

来自docs for Plots.jl :

The plot function has several methods:
plot(y): treats the input as values for the y-axis and yields a unit-range as x-values.

即当您将单个参数传递给 plot 时,参数中的值将被解释为 y 轴 值,x 轴为 1、2、3 , ....
在这里,因为 M 是向量的向量,所以为每个内部向量创建了一个线图。例如,[3, 9] 生成从 (1, 3)(1, 9) 的线图。

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

plot(first.(M), last.(M))

这将提取内部数组的每个第一个元素形成 x 轴,每个第二个元素形成 y 轴。

Parabolic curve

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


如果 M 改为 Matrix(这是在 Julia 中创建二维数组的推荐方式),例如。

julia> M
12×2 Matrix{Int64}:
1 1
2 4
3 9
etc.

然后你可以绘制它

julia> @views plot(M[:, 1], M[:, 2])

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

关于julia - 绘制存储在二维数组中的一系列坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73724184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com