matplotlib绘制具有可变x轴的柱形图

时间:2016-01-05 01:21:36

标签: matplotlib

我正在尝试制作一个柱形图,其中x轴对应于距离。我目前的数据如下:

dist    intensity:

 0       1521
10       176
17       47
20       397

因此,沿着x轴10个单位,我是一个176高的酒吧,17个单位沿着47高,等等。 任何简单的方法?标准条形码代码似乎没有“轻松”构建,因为条形间距不均匀...

2 个答案:

答案 0 :(得分:0)

我认为一个简单的解决方案是创建一个数组,其中索引是x值(dist),值是y值(强度)。如果你有更多的数据,可以确定一个更加pythonic的方式来填充数组,但是现在这应该产生你需要的结果 - 见下文。

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

plt.clf()
N = 21
data = (1521, 0., 0., 0., 0., 0., 0., 0., 0., 0., 176., 0., 0., 0., 0., 0., 0., 47., 0., 0., 397. )
ind = np.arange(N)
width = 0.2
plt.subplot(111)
plt.bar(ind, data, width, color='purple')
plt.xlabel('Distance')
plt.ylabel('Intensity')
plt.ylim([0., 1550.])
plt.xlim([-1., 22.])

plt.show()

enter image description here

答案 1 :(得分:0)

Matplotlib的bar函数使用提供的一组x坐标将条形图放在您指定的位置:

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

dist = [0,10,17,20]
intensity = [1521, 176, 47, 397]

fig, ax = plt.subplots()
ax.bar(dist, intensity, align='center')
plt.show()

enter image description here