Julia中绘制二维数组坐标序列出错,如何生成抛物线图形?
Julia中plot抛物线异常的原因及修复方案
问题根源
你定义的数组M是一个存储多个二维子数组的一维数组(类型为Vector{Vector{Int64}})。当调用plot(M)时,绘图库(比如Plots.jl)会误将每个子数组视为独立的数据集来绘制,而不是把所有子数组里的x和y对应起来组成一组连续的点,所以得到的图形不符合预期。
修复方法
这里提供几种可行的解决方式:
1. 将数组转换为矩阵格式
把M转成每行对应一个(x,y)点的矩阵,绘图库就能正确识别坐标对:
# 转换为n×2的矩阵 M_matrix = hcat(M...)' # 绘制抛物线 plot(M_matrix[:,1], M_matrix[:,2]) # 或者直接一行搞定 plot(hcat(M...)')
2. 手动拆分x、y数组
单独提取所有x值和对应的y值,再传入plot:
x = [point[1] for point in M] y = [point[2] for point in M] plot(x, y)
3. 初始定义时就用正确格式
如果重新定义数组,可以直接用矩阵格式,避免后续转换:
# 每行是一个(x,y)点 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] plot(M[:,1], M[:,2])
或者更简洁的方式生成抛物线数据(利用y=x²的规则):
x = 1:12 y = x.^2 plot(x, y)
内容的提问来源于stack exchange,提问作者jboy
相关产品推荐
相关产品推荐

