Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pandas 熊猫数据帧以三维方式绘制多个帧_Pandas_Matplotlib - Fatal编程技术网

Pandas 熊猫数据帧以三维方式绘制多个帧

Pandas 熊猫数据帧以三维方式绘制多个帧,pandas,matplotlib,Pandas,Matplotlib,我想在一个3D图形中绘制两个数据帧 data1 = {'numbers': [1,2,3,4,5,6,7,8,9,10], 'frequency': [5,2,1,6,9,3,8,2,0,5]} data2 = {'numbers': [1,2,3,4,5,6,7,8,9,10], 'frequency': [19,12,1,26,19,33,28,28,10,5]} newdf = pd.DataFrame(data1) newdf2= pd.DataFrame(data2) fig =

我想在一个3D图形中绘制两个数据帧

data1 = {'numbers': [1,2,3,4,5,6,7,8,9,10], 'frequency': [5,2,1,6,9,3,8,2,0,5]} 
data2 = {'numbers': [1,2,3,4,5,6,7,8,9,10], 'frequency': [19,12,1,26,19,33,28,28,10,5]} 
newdf = pd.DataFrame(data1)
newdf2= pd.DataFrame(data2)
fig = plt.figure(figsize=(10, 5))
ax = fig.add_subplot(111, projection='3d')
newdf.plot(kind='bar',x ='numbers', y='frequency',figsize=(10,5), color='thistle', width=.4, legend=True, alpha=0.8, ax=ax)
newdf2.plot(kind='bar',x ='numbers', y='frequency',figsize=(10,5), color='navy', width=.2,legend=True, alpha=1,ax=ax) 
plot.show()

这将在一个图形中绘制两个图形,但y轴和z轴是转置的。我想在z平面上绘制每个数据集,数字构成x轴,频率构成y轴。从所有的例子中,我不明白如何做到这一点。我还想绘制三维酒吧酒吧。我非常感谢您的帮助,请

这是我手头上的一个解决方案(找不到原始的链接)

输出曲线图:


我只是猜测,因为我没有想要看到的输出类型的示例,但是您想要实现的3D图形是以下示例:y轴是数据帧的类型,z轴是频率

import matplotlib.pyplot as plt

data1 = {'numbers': [1,2,3,4,5,6,7,8,9,10], 'frequency': [5,2,1,6,9,3,8,2,0,5]} 
data2 = {'numbers': [1,2,3,4,5,6,7,8,9,10], 'frequency': [19,12,1,26,19,33,28,28,10,5]} 
newdf = pd.DataFrame(data1)
newdf2 = pd.DataFrame(data2)

fig = plt.figure(figsize=(10,5))
ax = fig.add_subplot(111, projection='3d')

yticks = [4,3,2,1,0]
ax.bar(newdf['numbers'], newdf['frequency'], zs=3, zdir='y', color='b', alpha=0.8)
ax.bar(newdf2['numbers'], newdf2['frequency'], zs=1, zdir='y', color='r', alpha=0.8)

ax.set_xlabel('number')
ax.set_ylabel('df_type')
ax.set_zlabel('frequency')

ax.set_yticks(yticks)

plt.show()

bar3d型

# ax.bar3d(xpos, ypos, zpos, dx, dy, dz)
ax.bar3d(newdf['numbers'], 3, 0, dx=1, dy=1, dz=newdf['frequency'], color='b', alpha=0.6)
ax.bar3d(newdf2['numbers'], 0, 0, dx=1, dy=1, dz=newdf2['frequency'], color='r', alpha=0.3)

是否也可以将杆制作成3D?非常清楚的解决方案。add_子批次(111,projection='3d')中的111与什么有关?
ax.bar3d(xpos、YPO、zpos、dx、dy、dz、zsort='average')
请参考。感谢您和对文档的参考。由于您的Clarity是一个非常清晰的解决方案,我现在了解了如何使用它。我之所以接受下面的这个,仅仅是因为它比较短。我愿意接受并投票赞成这两种解决方案。这些条形图也可以三维绘制吗?
# ax.bar3d(xpos, ypos, zpos, dx, dy, dz)
ax.bar3d(newdf['numbers'], 3, 0, dx=1, dy=1, dz=newdf['frequency'], color='b', alpha=0.6)
ax.bar3d(newdf2['numbers'], 0, 0, dx=1, dy=1, dz=newdf2['frequency'], color='r', alpha=0.3)