2017-06-28 12 views
0

私は、(x、y)点のリストを散布図で1つのチャートに接続しています。これらのすべての点を結びつけるだけでなく、一番下に線を生成します。ここでPython散布図は線で結ばれていますが、なぜ下線があるのですか?

は私のサンプルコードでは、(私はiPythonを使用しています)です:これは私が得たものである

%matplotlib inline 
import numpy as np 
import pandas as pd 
from scipy import stats, integrate 
import matplotlib.pyplot as plt 
import seaborn as sns 
sns.set(color_codes=True) 

mc_time_lst1 = [[0, 8], [1, 12], [2, 18]] 
mc_time_lst2 = [[0, 10], [1, 9], [2, 5]] 
mc_time_lst3 = [[0, 11], [1, 8], [2, 17]] 

plt.plot(mc_time_lst1, 'o-', label='line1') 
plt.plot(mc_time_lst2, '-*', label='line2') 
plt.plot(mc_time_lst3, '-D', label='line3') 
plt.legend(); 

あなたが見ることができるように、3行です実際には金色のラインが(そこにあります)私が望む真の3ラインの下で。その後、複数の行がある場合、伝説を見て混乱することができます。

enter image description here

その一番下の行を削除する方法はありますか?または、その最終行の凡例を削除しますか?

答えて

2

0,1,2..のようにx軸のデータを与える必要はありません。

あなたは、単に次のコード

%matplotlib inline 
import numpy as np 
import matplotlib.pyplot as plt 
mc_time_lst1 = [ 8, 12, 18] 
mc_time_lst2 = [ 10, 9, 5] 
mc_time_lst3 = [ 11, 8, 17] 
plt.plot(mc_time_lst1, 'o-', label='line1') 
plt.plot(mc_time_lst2, '-*', label='line2') 
plt.plot(mc_time_lst3, '-D', label='line3') 
plt.legend(); 
を書くことができます
1

データの形式が間違っています。プロット関数は、yのみ、またはxyの値を個別に求めます。私。次のように単に

plt.plot([8,12,18]) 

質問から与えられたデータをプロットするには、あなたがそれらをrearangeこと

plt.plot([0,1,2],[8,12,18]) 

またはこのような場合にはどうなる:

#%matplotlib inline 
import numpy as np 
import pandas as pd 
from scipy import stats, integrate 
import matplotlib.pyplot as plt 
import seaborn as sns 
sns.set(color_codes=True) 

mc_time_lst1 = [[0, 8], [1, 12], [2, 18]] 
mc_time_lst2 = [[0, 10], [1, 9], [2, 5]] 
mc_time_lst3 = [[0, 11], [1, 8], [2, 17]] 

x1,y1 = zip(*mc_time_lst1) 
x2,y2 = zip(*mc_time_lst2) 
x3,y3 = zip(*mc_time_lst3) 

plt.plot(x1,y1, 'o-', label='line1') 
plt.plot(x2,y2, '-*', label='line2') 
plt.plot(x3,y3, '-D', label='line3') 
plt.legend() 

enter image description here

関連する問題