我正在尝试根据How to plot a very simple bar chart (Python, Matplotlib) using input *.txt file?和pylab_examples example code: barchart_demo.py中提供的示例构建垂直条形图。
# 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()
函数是否正确定义。在尝试复制前面提到的两个例子时,我可能会忽略其他一些问题。
答案 0 :(得分:2)
x,y = line.split()返回一个字符串元组。我相信你需要将它们转换成int和floats。您还需要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()
考虑到第一行中的100值(与其余部分的< = 5相比),它会产生一个非常难看的条形图。
答案 1 :(得分:1)
也许你想做类似
的事情for line in data.split("\n"):
x, y = line.split()
values.append(int(x))
counts.append(float(y))