3D条形图使用Matplotlib和数据框绘制。

huangapple go评论76阅读模式
英文:

3d bar chart with matplotlib using DataFrames

问题

我有以下的DataFrame:

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

我尝试使用plotlymatplotlib,但结果非常不理想。

英文:

I have the following DataFrame:

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

And I am not finding any solutions to display this data in a nice and simple way with a bar chart where j k are the bar indices and z controls the height.

I tried with plotly, matplotlib, and had very poor results

答案1

得分: 1

# 使用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()

3D条形图使用Matplotlib和数据框绘制。

英文:

Using 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()

3D条形图使用Matplotlib和数据框绘制。

huangapple
  • 本文由 发表于 2023年2月9日 02:10:15
  • 转载请务必保留本文链接:https://go.coder-hub.com/75390041.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定