2013-09-24 68 views
0

我試圖根據How to plot a very simple bar chart (Python, Matplotlib) using input *.txt file?pylab_examples example code: barchart_demo.py中提供的示例構建垂直條形圖。從兩列數據生成matlibplot條形圖

# a bar chart 
import numpy as np 
import matplotlib.pyplot as plt 

data = """100 0.0 
     5 500.25 
     2 10.0 
     4 5.55 
     3 950.0 
     3 300.25""" 

counts = [] 
values = [] 

for line in data.split("\n"): 
    x, y = line.split() 
    values = x 
    counts = y 

plt.bar(counts, values) 

plt.show() 

當前我收到以下錯誤:AssertionError: incompatible sizes: argument 'height' must be length 15 or scalar。我不確定plt.bar()函數是否正確定義。在嘗試複製前面提到的兩個示例時,可能會有其他問題被忽略。

回答

2

X,Y = line.split()返回一個字符串的元組。我相信你需要將它們轉換爲整數和浮點數。您還需要values.append(x)和values.append(y)。

import numpy as np 
import matplotlib.pyplot as plt 

data = """100 0.0 
     5 500.25 
     2 10.0 
     4 5.55 
     3 950.0 
     3 300.25""" 

counts = [] 
values = [] 

for line in data.split("\n"): 
    x, y = line.split() 
    values.append(int(x)) 
    counts.append(float(y)) 

plt.bar(counts, values) 

plt.show() 

鑑於在第一行(相對於< = 5的其餘部分)的100值,它使一個非常難看條形圖雖然。

1

也許你想要做的事就像

for line in data.split("\n"): 
    x, y = line.split() 
    values.append(int(x)) 
    counts.append(float(y))