6

同じウィンドウで 2 種類のプロット (つまり、折れ線グラフと散布図) をグラフ化しようとしています。折れ線グラフ (最初のプロット) にプロットされているデータは、気候指数 (Y) 対 10 進年 (X) を表す浮動数値です。私が「散布」したい 2 番目のプロットはほとんど同じですが、河川の流れ (Y) と 10 進数 (X) を表す数値が浮動しています。散布図に双子の x 軸と 2 番目の寄生虫の y 軸を使用して、次のようにこれを達成しようとしました。

    import mpl_toolkits
    from mpl_toolkits.axes_grid1 import host_subplot
    import matplotlib.pyplot as plt

    host = host_subplot(111)
    par = host.twinx()

    host.set_xlim(1880, 2020)
    host.set_ylim(-5, 10)

    host.set_xlabel("Time")
    host.set_ylabel("PDSI Region 01")
    par.set_ylabel("Minimum 10% Annual 7-day Non-exceedance Flow (cfs)")

    x1 = timearray
    y1 = pdsiarray01
    x2 = upAmm_yr
    y2 = upAmm_min

    p1, = host.plot(x1, y1, label="PDSI01")
    p2, = par.scatter(x2, y2, label="Annual Lowflow Upper Amm")

    par.set_ylim(30, 60)

    host.legend()
    host.axis["left"].label.set_color(p1.get_color())
    par.axis["right"].label.set_color(p2.get_color())

    plt.draw()
    plt.show()

エラーコードが表示されます:

    TypeError: cannot perform reduce with flexible type

このコードは、p2 で始まる行の散布図をプロットに置き換えると正常に機能しますが、2 番目のライン プロットが生成されます。分散させたい最終的な理由は、2 番目のデータセットにプロットするポイントがはるかに少なく、それらを結ぶ線が気を散らして「乱雑」にすることです (必要な場合は、瞬間を強調する必要があります)。散布図の代わりに棒グラフも機能します。どんな提案や助けも大歓迎です!

4

2 に答える 2

5

plot両方の場合に使用しないのはなぜですか?

import datetime
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

# Generate some random data
time = mdates.drange(datetime.datetime(2010, 1, 1), 
                     datetime.datetime(2011, 1, 1),
                     datetime.timedelta(days=5))
y1 = np.cumsum(np.random.random(time.size) - 0.5)
y2 = np.cumsum(np.random.random(time.size) - 0.5)
y2 = y2 * 20 + 10

# Plot things up...
fig = plt.figure()
host = fig.add_subplot(111)
par = host.twinx()

host.set_ylabel('One Thing')
par.set_ylabel('Another')

line1, = host.plot(time, y1)
line2, = par.plot(time, y2, 'go')
host.legend([line1, line2], ['Item 1', 'Item 2'])

host.xaxis_date()

plt.show()

ここに画像の説明を入力

于 2011-09-08T20:00:01.777 に答える
1

f正確なエラーを再現することはできませんが、単一の値しか返さないため、後p2に コンマは必要ないと思います。それが変更されると、メソッドがないことscatterを除いて、コードが機能します。それをまたは別のものに変更する必要があります。p2CircleCollectionget_colorp2.get_facecolor()

于 2011-09-08T19:21:19.257 に答える