2

Y 値がすべて同じ場合、matplotlib でグラフをプロットするのに問題があります。

時間に対する温度のグラフをプロットしていますが、温度がすべて同じ場合、プロットに温度変化が追加されるとすぐに線が描画されないことがわかりました。

温度のリストをゼロ (0) の値で初期化することにより、常に線を引くように強制することができましたが、それは温度が常にゼロではないことを前提としてのみ機能します。

偽の値でプライミングせずにグラフを適切にプロットさせる方法はありますか?

田畑:

    temperature = []
    time = []
    minY = 0
    maxY = 0

設定 (センサーポーリング時):

    temp = float(params['temp'][0])
    time = datetime.now()
    self.temperature.append(temp)
    self.time.append(time)

プロット:

    plt.figure()
    plt.xlabel("Time")
    plt.ylabel("Temperature (Celcius)")
    plt.title("Temperature in ...")
    plt.ylim(self.minY,self.maxY)
    plt.plot(self.time,self.temperature, "c")
    plt.gcf().autofmt_xdate()
    plt.savefig("temp.svg")

編集: プロットを呼び出すときにプロット タイプを「o」(円) に設定すると、同じ行に円が表示されます。デフォルトの線タイプに戻すと、何も表示されません。

Edit2: 出力形式を png に切り替えると、線が正しく生成されます。SVG がそうしないのはなぜですか?

4

1 に答える 1