gpt4 book ai didi

Python Pandas plot multiindex 指定 x 和 y

转载 作者:太空宇宙 更新时间:2023-11-04 00:45:37 26 4
gpt4 key购买 nike

下面是一个例子DataFrame

           joaquin     manolo
xx 0 0.000000e+00 44.000000
1 1.570796e+00 52.250000
2 3.141593e+00 60.500000
3 4.712389e+00 68.750000
4 6.283185e+00 77.000000
yy 0 0.000000e+00 37.841896
1 2.078796e+00 39.560399
2 5.292179e-17 41.026434
3 -8.983291e-02 42.304767
4 -4.573916e-18 43.438054

可以看到,行索引有两个级别,['xx', 'yy'][0, 1, 2, 3, 4] .我想以这样一种方式调用 DataFrame.plot(),它会生成两个子图,一个用于 joaquin,一个用于 manolo,并且我可以在其中指定对域数据使用 data.loc["xx", :] 并为纵坐标使用 data.loc["yy", :]数据。此外,我希望在 matplotlib.axes._subplots.AxesSubplot 实例的列表(或数组)中提供应该在其上绘制图的子图的选项,例如可以返回的那些通过 DataFrame.hist() 方法。如何做到这一点?

生成上面的数据

以防万一你想知道,下面是我用来生成数据的代码。如果有更简单的方法来生成这些数据,我很想知道作为旁注。

joaquin_dict = {}
xx_joaquin = numpy.linspace(0, 2*numpy.pi, 5)
yy_joaquin = 10 * numpy.sin(xx_joaquin) * numpy.exp(-xx_joaquin)
for i in range(len(xx_joaquin)):
joaquin_dict[("xx", i)] = xx_joaquin[i]
joaquin_dict[("yy", i)] = yy_joaquin[i]

manolo_dict = {}
xx_manolo = numpy.linspace(44, 77, 5)
yy_manolo = 10 * numpy.log(xx_manolo)
for i in range(len(xx_manolo)):
manolo_dict[("xx", i)] = xx_manolo[i]
manolo_dict[("yy", i)] = yy_manolo[i]

data_dict = {"joaquin": joaquin_dict, "manolo": manolo_dict}
data = pandas.DataFrame.from_dict(data_dict)

最佳答案

只需使用 for 循环:

fig, axes = pl.subplots(1, 2)
for ax, col in zip(axes, data.columns):
data[col].unstack(0).plot(x="xx", y="yy", ax=ax, title=col)

输出:

enter image description here

关于Python Pandas plot multiindex 指定 x 和 y,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39790041/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com