对不起,如果我的问题听起来......,我是matplotlib的新手。我在pandas dataFrame中有一个简单的数据集,如下所示:
TAG_1 TAG_2 testTime
0 5 10, 10 758.2
1 5 16, 4 1738.1
2 5 4, 3 752.2
3 5 5, 3 868.9
4 5 5, 4 742.3
有没有办法用matplotlib 3D绘制这样的数据? TAG_1和TAG_2只是简单的标签,它们的值根本不重要,所以实际上我只使用索引列2次作为X轴,Y轴和testTime列作为Z轴。你能给我一个示例代码吗?先感谢您。
答案 0 :(得分:1)
使用此代码
data = [ [758.2], [1738.1], [752.2], [868.9], [742.3] ]
import pandas as pd
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
df = pd.DataFrame(data)
threedee = plt.figure().gca(projection='3d')
threedee.plot(df.index, df.index, df[0])
plt.show()
我得到了
它使用索引作为X和Y而列作为Z,但我不知道它是否符合您的预期。
您需要更多数据来绘制更多内容。
我添加了更多列
data = [
[0, 1, 100, 758.2],
[0, 1, 100, 1738.1],
[0, 1, 100, 752.2],
[0, 1, 100, 868.9],
[0, 1, 100, 742.3],
]
import pandas as pd
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
df = pd.DataFrame(data)
Y = range(df.shape[0])
X = range(df.shape[1])
X, Y = np.meshgrid(X, Y)
threedee = plt.figure().gca(projection='3d')
threedee.plot_wireframe(Y, X, df)
plt.show()
我得到了
如果我将X
替换为Y
,那么我
要获得第一个版本,您可以将X
替换为Y
或转换DataFrame
df = df.T