使用Matplotlib和DataFrame的三维直方图

46scxncf  于 2023-02-09  发布在  其他
关注(0)|答案(1)|浏览(138)

我有以下数据框:

j   k   z
16  36  3.34541e-07
19  40  4.4038e-07
21  52  1.24715e-06
24  41  9.13244e-07
25  37  6.33979e-07
25  45  5.89413e-07
26  31  7.83958e-07
26  36  6.24651e-07
26  42  5.44847e-07
26  47  4.77851e-07
27  30  8.50074e-07
27  35  5.51727e-07
27  36  1.2272e-06
27  38  5.77199e-07

我没有找到任何解决方案来显示这些数据,用一个直方图,其中jk是条形指数,z控制高度。
我用plotly,和matlab试过了,结果很差

py49o6xq

py49o6xq1#

使用matplotlib:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame([
    [16, 36, 3.34541e-07],
    [19, 40, 4.4038e-07],
    [21, 52, 1.24715e-06],
    [24, 41, 9.13244e-07],
    [25, 37, 6.33979e-07],
    [25, 45, 5.89413e-07],
    [26, 31, 7.83958e-07],
    [26, 36, 6.24651e-07],
    [26, 42, 5.44847e-07],
    [26, 47, 4.77851e-07],
    [27, 30, 8.50074e-07],
    [27, 35, 5.51727e-07],
    [27, 36, 1.2272e-06],
    [27, 38, 5.77199e-07]
])
df.columns = ['j', 'k', 'z']

fig = plt.figure()
ax = fig.add_subplot(projection='3d')
ax.bar3d(df['j'], df['k'], np.zeros_like(df['k']), dx=0.5, dy=1, dz=df['z'])
ax.set_xlabel('j')
ax.set_ylabel('k')
plt.show()

相关问题