python-2.7 - 当它们实际上是相同长度的一维数组时获取 'ValueError: x and y must be 1D arrays of the same length'

标签 python-2.7 pandas numpy matplotlib contourf

我有这个数据框:

    key variable    value
0   0.25    -0.2    606623.455859
1   0.27    -0.2    621462.029200
2   0.30    -0.2    640299.078053
3   0.33    -0.2    653686.910706
4   0.35    -0.2    659278.593742
5   0.37    -0.2    665684.466383
6   0.40    -0.2    671975.695814
7   0.25    0   530091.733402
8   0.27    0   542501.852937
9   0.30    0   557799.179433
10  0.33    0   571140.149887
11  0.35    0   575117.783803
12  0.37    0   582709.048163
13  0.40    0   588168.965913
14  0.25    0.2 466275.721535
15  0.27    0.2 478678.452615
16  0.30    0.2 492749.041489
17  0.33    0.2 500792.917910
18  0.35    0.2 503620.638204
19  0.37    0.2 507884.996510
20  0.40    0.2 512504.976664
21  0.25    0.5 351579.595889
22  0.27    0.5 359555.855803
23  0.30    0.5 368924.362358
24  0.33    0.5 375069.238800
25  0.35    0.5 377847.414729
26  0.37    0.5 381146.573247
27  0.40    0.5 383836.933547

我正在尝试通过以下代码使用此数据框制作等高线图:

x = df['key'].values
y = df['variable'].values
z = df['value'].values
plt.tricontourf(x, y, z, colors='k')

我一直收到这个错误:

ValueError: x and y must be 1D arrays of the same length

但是每当我检查 x 和 y 的 len、.size、.shape 和 .ndim 时,它们都是相同长度的一维数组。有谁知道为什么我会收到此错误?

x.shape 返回 (28L,) 并且 y.shape 返回 (28L,)

最佳答案

好的,我找到了让它工作的方法。真的不知道为什么它不能以原始方式工作,因为我正在提供 tricontourf 一维数组,但基本上我将我的数据包装在一个 list() 函数中,只是为了确保它是一维数组。这使它工作。代码如下:

x = df_2020_pivot['key'].values
y = df_2020_pivot['variable'].values
z = df_2020_pivot['value'].values
plt.tricontourf(list(x), list(y), list(z))

plt.show()

And this is what it produced

关于python-2.7 - 当它们实际上是相同长度的一维数组时获取 'ValueError: x and y must be 1D arrays of the same length',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53200022/

相关文章:

python - 如何使用列表中具有字典键的元素来访问字典值?

python-2.7 - pyclipper 中无法缩放 - TypeError : 'Zero' object is not iterable

python - 如何在 Python 2.7 中使用带参数的 super()?

python - 什么是 <class 'range' >

python - 1241, 'Operand should contain 1 column(s)' Pandas to_sql

python - 如何用 pandas 替换一定时间范围内的值及其平均值?

python - 将列表中的数字放置到元素不是 np.nan 的数组中

python - 使用 Pandas/Python 在数据框中查找最接近的匹配数字

python - 在 Pandas 中有带有下标/索引的列

python - 数据类型的 tensorflow 警告