Matplotlibは散布図の点を線で結びます-Python


102

日付と値の2つのリストがあります。matplotlibを使用してそれらをプロットしたいです。以下は、私のデータの散布図を作成します。

import matplotlib.pyplot as plt

plt.scatter(dates,values)
plt.show()

plt.plot(dates, values) 折れ線グラフを作成します。

しかし、私が本当に欲しいのは、点が線で結ばれている散布図です。

Rと同様:

plot(dates, values)
lines(dates, value, type="l")

、点を結ぶ線で覆われた点の散布図が表示されます。

Pythonでこれを行うにはどうすればよいですか?


5
最初にshow()両方scatter()を呼び出した後に呼び出しplot()ますか?

回答:


136

@Evertには正しい答えがあると思います:

plt.scatter(dates,values)
plt.plot(dates, values)
plt.show()

それはほとんど同じです

plt.plot(dates, values, '-o')
plt.show()

またはあなたが好むどんな線種でも。


3
'linestyle'は、(gynormous)matplotlibのドキュメントをたどる良いキーワード検索の手がかりでした。
Reb.Cabin 2017

2
@aaronsnoswellサイズと色はscatter、最初の例のように、を介してプロットできる点に対してのみ意味があります。質問は線の太さや色の変化については何も言っていないので、あなたの批判は実際には少し不公平だと思います。
HannesOvrén18年

28

赤い線の点

plt.plot(dates, values, '.r-') 

またはxマーカーと青い線

plt.plot(dates, values, 'xb-')

エバート、着ぐるみ、大丈夫そうですね。show()を呼び出す前に、scatter()とplot()の両方を呼び出すことができます。または、Steve Barnesが説明したように、lineおよびpoint属性を指定してplot()を呼び出すだけです。ありがとう
brno792 2013年

14

他の回答で提供されているものに加えて、キーワード「zorder」を使用すると、さまざまなオブジェクトが垂直にプロットされる順序を決定できます。例えば:

plt.plot(x,y,zorder=1) 
plt.scatter(x,y,zorder=2)

線の上に散布記号をプロットしますが、

plt.plot(x,y,zorder=2)
plt.scatter(x,y,zorder=1)

散布図の上に線をプロットします。

たとえば、zorderデモを参照してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.