使用 x 和 y 的数据框使用 Matplotlib 生成直方图

我正在用 Matplotlib 生成一个简单的折线图,这是我的代码:


fig = plt.figure(facecolor='#131722',dpi=155, figsize=(8, 4))

ax1 = plt.subplot2grid((1,2), (0,0), facecolor='#131722')


for x in OrderedList:

    rate_buy = []

    total_buy = []


    for y in x['data']['bids']:

        rate_buy.append(y[0])

        total_buy.append(y[1])


    rBuys = pd.DataFrame({'buy': rate_buy})

    tBuys = pd.DataFrame({'total': total_buy})


    ax1.plot(rBuys.buy, tBuys.total, color='#0400ff', linewidth=0.5, alpha=1)

    ax1.fill_between(rBuys.buy, 0, tBuys.total, facecolor='#0400ff', alpha=1)

这给了我以下输出:

http://img3.mukewang.com/63aa9c90000185e005350564.jpg

这是我在数据框中使用的数据:


     buy

0   9611

1   9610

2   9609

3   9608

4   9607

5   9606

6   9605

7   9604

8   9603

9   9602

10  9601

11  9600

12  9599

        total

0    3.033661

1    3.295753

2    3.599813

3   22.305765

4   22.987476

5   30.975145

6   39.492845

7   42.828580

8   46.677708

9   49.533740

10  50.925840

11  61.396243

12  61.921523

我想获得相同的图像输出,但使用直方图图表或类似的任何东西,其中从数据帧检索 y 轴上的列高度,从total数据帧检索 x 轴位置buy。所以第一个元素将有位置x=9611和y=3.033661


有可能用 Matplotlib 做到这一点吗?我尝试使用hist,但它不允许我同时设置 x 轴和 y 轴


杨魅力
浏览 121回答 1
1回答

天涯尽头无女友

Pandas 也使用 matplotlib,一旦你有了数据框,API 就非常简单。这是一个例子。d =    {         'buy':[             9611,             9610,             9609,             9608,             9607,             9606,             9605,             9604,             9603,             9602,             9601,             9600,             9599         ],         'total':[             3.033661,             3.295753,             3.599813,             22.305765,             22.987476,             30.975145,             39.492845,             42.828580,             46.677708,             49.533740,             50.925840,             61.396243,             61.921523         ]     }df = pd.DataFrame(d)df = df.sort_values(by=['buy']) #remember to sort your x values!df.plot(kind='bar', x='buy', y='total', width=1)plt.show()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python