2017-07-09 18 views
3

編集:この質問は重複ではなく、ポイントの代わりに数字をプロットしたくないので、私はポイントの横に数字をプロットしたかったのです。matplotlib散布図の点数

私はmatplotlibを使ってプロットを作っています。 [[3,9]、[4,8]、[5,4]]

をプロットするには、3つのポイントがありますが、私は簡単に彼らとこのプロットを生成

import matplotlib.pyplot as plt 

allPoints = [[3,9],[4,8],[5,4]] 

f, diagram = plt.subplots(1) 

for i in range(3): 
    xPoint = allPoints[i][0] 
    yPoint = allPoints[i][1] 
    diagram.plot(xPoint, yPoint, 'bo') 

を散布を行うことができます。

plot

各ポイントに数字1,2,3を付けたいとします。

thisに基づいて答え私は各ポイントにラベルを付けるために注釈を使用しようとしました。

import matplotlib.pyplot as plt 

allPoints = [[1,3,9],[2,4,8],[3,5,4]] 

f, diagram = plt.subplots(1) 

for i in range(3): 
    pointRefNumber = allPoints[i][0] 
    xPoint = allPoints[i][1] 
    yPoint = allPoints[i][2] 
    diagram.annotate(pointRefNumber, (xPoint, yPoint)) 

これは空白のプロットを生成します。私は密接に他の答えに従っていますが、それはプロットを生成していません。私はどこで間違いを犯したのですか?

+0

あなたはすでに、すでに点をプロットする方法を知っている、とあなたので、ポイントにラベルを付ける方法を知っていますが、唯一の注釈付きのプロットが空のままであるのは、唯一の未解決な問題です。これは最初の重複した質問で答えられます。ラベリングポイントの一般的なケースでは、別の複製物を追加しました。 – ImportanceOfBeingErnest

+0

@ImportanceOfBeingErnestラベル付き点をプロットする方法を知らなかった。私は、.annotate()機能がプロットとラベル付けの両方のポイントになると思いました。私は座標とラベルを指定していたので理にかなっていましたが、私は間違っていました。 – Hugh

答えて

1

のようにあなたがそれを行うことができますフォントサイズオプションを追加するには:

import matplotlib.pyplot as plt 

points = [[3,9],[4,8],[5,4]] 

for i in range(len(points)): 
    x = points[i][0] 
    y = points[i][1] 
    plt.plot(x, y, 'bo') 
    plt.text(x * (1 + 0.01), y * (1 + 0.01) , i, fontsize=12) 

plt.xlim((0, 10)) 
plt.ylim((0, 10)) 
plt.show() 

scatter_plot

+0

これはうまくいく、.annotate()を使ったテキストが小さすぎるので、サイズを増やすと便利です – Hugh

2

私は自分の質問を解決しました。私はポイントをプロットし、それらに注釈を付ける必要がありました。注釈にはプロットが組み込まれていません。

import matplotlib.pyplot as plt 

allPoints = [[1,3,9],[2,4,8],[3,5,4]] 

f, diagram = plt.subplots(1) 

for i in range(3): 
    pointRefNumber = allPoints[i][0] 
    xPoint = allPoints[i][1] 
    yPoint = allPoints[i][2] 
    diagram.plot(xPoint, yPoint, 'bo') 
    diagram.annotate(nodeRefNumber, (xPoint, yPoint), fontsize=12) 

編集だけGregouxの答え