【发布时间】:2020-12-04 19:32:10
【问题描述】:
我正在尝试从 Pandas.DataFrame 对象制作 3d 图。
要求
- 为
z绘制的列数可能会有所不同,因此我对z值使用了一个循环,该值具有固定的x和y值。代码显示在Code 1。
代码 1
import matplotlib.pyplot as plt
import urllib, base64
from mpl_toolkits.mplot3d import axes3d
import numpy as np
import pandas as pd
column_names = ['A', 'B', 'C', 'D', 'E']
df = pd.DataFrame(columns=column_names)
fig2 = plt.figure(figsize=(15,15))
ax2 = fig2.add_subplot(111, projection='3d')
for x in df.columns:
if(x!='A' and x!='B'):
ax2.plot_surface(df['A'].values, df['B'].values, df[x].values, linewidth=0, antialiased=False)
ax2.legend()
问题:
当我执行Code 1 时,我得到一个错误 -
Argument Z must be 2-dimensional.
我用的时候已经解决了-plot_trisurf,如Code 2所示。
代码 2
for x in df.columns:
if(x!='A' and x!='B'):
ax2.plot_trisurf(df['A'].values, df['B'].values, df[x].values, linewidth=0, antialiased=False)
ax2.legend()
但现在我得到了一个不同的错误 -
Error in qhull Delaunay triangulation calculation: singular input data (exitcode=2); use python verbose option (-v) to see original qhull error.
问题
- 如何为
Pandas.DataFrame制作具有不同列数的 Z 与图例的 3d 图
注意
以上提供的数据仅供实验,可能不统一,可以有小数。
【问题讨论】:
标签: python-3.x pandas numpy matplotlib graph