2017-04-03 83 views
1

我從單個文本文件加載數據。我想用這個數據做散點圖,但我只有一個座標軸(加載的數據)。對於我的另一個軸,我想只計數(即0,1,2,3,4,5,...),直到我爲每個加載的值都匹配一個值。在散點圖中,我想自動填充軸

感謝您的任何幫助提前!

+0

你只需自己創建它。 'x_axis = range(len(y_axis_data))'。 – roganjosh

回答

1

考慮樣本文件txt

from io import StringIO 
import pandas as pd 

txt = """4 
5 
2 
6 
1 
4 
3 
6 
2 
7""" 

s = pd.read_csv(StringIO(txt), header=None, squeeze=True) 

分配給該系列s0到系列少1的長度缺省索引。您可以重置索引以使其進入數據框並進行相應的繪圖。

s.reset_index(name='x').plot.scatter('x', 'index') 
如果沒有X數據給出

enter image description here

+0

我在這個圖的'txt'結果有點遺憾。一些'x'標籤有多個'y'數據,而其他的則沒有。在'x = 4'的情況下,什麼是產生'y = 0'和'y = 5'值? – roganjosh

+0

@roganjosh我們同時繪製了'(0,4)'和'(5,4)'因爲'4'在第零個索引位置和第五個索引位置。 – piRSquared

+0

啊,有道理。從我腦海中的問題來看,OP只需要一個唯一的索引來讀取每個值(我不知道在這種情況下得到的圖的用處)。這個問題不是特別清楚。 – roganjosh

1

Matplotlib自動使用Y數據的索引。所以,你可以簡單地提供數據陣列的繪圖功能,pyplot.plot(data)

import io 
import numpy as np 
import matplotlib.pyplot as plt 

csv = u"13.7\n12.4\n10.1\n7.4\n3.7\n9.4\n8.2" 

a = np.loadtxt(io.StringIO(csv)) 
plt.plot(a, marker="o", ls="") 

plt.xlabel("index") 
plt.ylabel("data") 

plt.show() 

enter image description here