簡體   English   中英

如何使用 arrays 的嵌套數組制作散點圖

[英]How to make scatterplot with nested array of arrays

我正在嘗試使用我擁有的坐標列表進行散點 plot。 我只是很困惑如何將這些坐標分成 x 和 y,以便我可以將它插入 plt.scatter() function,特別是考慮到它是 arrays 的嵌套數組。

   array([array([1., 0.]), array([ 0., -1.]), array([-1.,  0.]),
   array([-1., -1.]), array([ 1., -1.]), array([ 0., -2.]),
   array([-2.,  0.]), array([2., 0.]), array([-2., -1.]),
   array([ 2., -1.]), array([-1., -2.]), array([ 1., -2.]),
   array([-2., -2.]), array([ 2., -2.]), array([ 0., -3.]),
   array([3., 0.]), array([-3.,  0.]), array([ 1., -3.]),
   array([-1., -3.]), array([ 3., -1.]), array([-3., -1.]),
   array([-2., -3.]), array([ 3., -2.]), array([-3., -2.]),
   array([ 2., -3.]), array([-4.,  0.]), array([4., 0.]),
   array([-4., -1.]), array([ 4., -1.]), array([-3., -3.]),
   array([ 3., -3.]), array([ 4., -2.]), array([-4., -2.]),
   array([ 4., -3.]), array([-4., -3.]), array([-1., -5.]),
   array([ 1., -5.]), array([-5., -1.]), array([-5., -2.]),
   array([-5., -3.]), array([ 3., -5.]), array([-3., -5.]),
   array([-6.,  0.]), array([-6., -1.]), array([-6., -2.]),
   array([-6., -3.]), array([-5., -5.]), array([-7., -1.]),
   array([ 1., -7.]), array([-1., -7.]), array([-7., -2.]),
   array([-3., -7.]), array([-7., -3.]), array([ 3., -7.]),
   array([-7., -5.]), array([-5., -7.]), array([-1., -9.]),
   array([ 1., -9.]), array([ 3., -9.]), array([-3., -9.]),
   array([-7., -7.]), array([-5., -9.]), array([  1., -11.]),
   array([ -1., -11.]), array([ -3., -11.]), array([  3., -11.]),
   array([-7., -9.]), array([ -5., -11.]), array([ -7., -11.])],
  dtype=object)
import numpy as np
import matplotlib.pyplot as plt

arr = np.array([
    0,
    np.array([0.,  3.]),
    np.array([2., 4.]),
    np.array([-3., -1.]),
    np.array([-4.,  2.]),
    np.array([2., 0.]),
    np.array([-2., -2.])
], dtype=object)[1:]
print(repr(arr))

印刷:

array([array([0., 3.]), array([2., 4.]), array([-3., -1.]),
       array([-4.,  2.]), array([2., 0.]), array([-2., -2.])],
      dtype=object)

然后你可以使用np.stack (正如其他人已經在評論中建議的那樣)將arr轉換為二維數組:

arr = np.stack(arr)
print(repr(arr))

打印:

array([[ 0.,  3.],
       [ 2.,  4.],
       [-3., -1.],
       [-4.,  2.],
       [ 2.,  0.],
       [-2., -2.]])

並且比 plot 更容易:

plt.scatter(arr[:, 0], arr[:, 1])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM