Julia 沿不同维度绘制

Julia 沿不同维度绘制,julia,Julia,我有以下基本代码。第一行沿维度1对p求和,以创建一个1 x列数组。下一行绘制A。不幸的是,Julia似乎认为它必须绘制多条线,在这种情况下,只能沿着维度2绘制点 A = sum(p,dims = 1) plot(A) 所以,我的问题是,当数据位于1 x列数组中时,如何绘制简单的直线?我假设您使用Plots.jl。以下是Plots.jl的文档 如果参数[to plot]是矩阵类型,则每列将映射到一个系列,如果列数少于系列,则循环遍历列。从这个意义上讲,向量就像nx1矩阵一样处理 plota尝试打

我有以下基本代码。第一行沿维度1对p求和,以创建一个1 x列数组。下一行绘制A。不幸的是,Julia似乎认为它必须绘制多条线,在这种情况下,只能沿着维度2绘制点

A = sum(p,dims = 1)
plot(A)
所以,我的问题是,当数据位于1 x列数组中时,如何绘制简单的直线?

我假设您使用Plots.jl。以下是Plots.jl的文档

如果参数[to plot]是矩阵类型,则每列将映射到一个系列,如果列数少于系列,则循环遍历列。从这个意义上讲,向量就像nx1矩阵一样处理

plota尝试打印的系列数是a中的列数

要获得单个系列,可以执行以下操作之一

plot(vec(a)) # `vec` will give you a vector view of `a` without an allocation

plot(a') # or `plot(transpose(a))`. `transpose` does not allocate a new array

plot(a[:]) # this allocates a new array so you should probably avoid it

plota'在我的情况下有效。这也非常类似于或完全类似于MATLAB,只是MATLAB在绘图时似乎不需要换位。在MATLAB中,我了解到,进入需要换位的情况通常是不好的做法。朱莉娅也是这样吗?这里的代价是什么?在Julia中,b=a'实际上并不需要换位。它是一个惰性操作,不分配新数组并将值复制到其中。有关详细信息,请参阅文档。即使您的数组非常大,也不会有任何惩罚。plot.plot的行为与MATLAB的plot相同,只是1xn矩阵的情况(例如MATLAB中的行向量)是MATLAB plot的特例。请注意,这与Julia无关,而是与您选择使用的implementation Plots.jl包有关。例如,如果直接使用GR.jl,则可以绘制1xn矩阵,而无需转置。