在python中绘制条形图

xkcvk2511

我是Python编程的新手。我正在学习Python。

以下代码帮助我绘制了条形图。我正在尝试理解代码。我无法理解第5、6、7和8行。

N = len(data)
x = np.arange(1,N+1)
y = [num for (s, num) in data ]
labels = [ s for (s, num) in data ]

另外,为什么x+width/2.0在绘制x轴标签时需要考虑而且,如何在房屋盗窃案发生之前,在图表的开头处设置较小的宽度?小节通常以0开头。我不确定如何在第一个小节开始之前缩小宽度。我尝试过,但无法正常进行。

完整程序如下。

import matplotlib.pyplot as plt
import numpy as np
data = [ ("House Theft", 57), ("House Fire", 48),
            ("Car Theft", 156), ( "Car Accident", 245)]
N = len(data)
x = np.arange(1,N+1)
y = [num for (s, num) in data ]
labels = [ s for (s, num) in data ]
width = 0.35 #Use 1 to make it as a histogram
bar1 = plt.bar( x, y, width, color="y")
plt.ylabel( 'Frequency' )
plt.xticks(x + width/2.0, labels )
plt.show()
第二次世界大战

多重分配,元组/序列打包/解包

>>> 
>>> data = [ ("House Theft", 57), ("House Fire", 48),
            ("Car Theft", 156), ( "Car Accident", 245)]
>>> 
>>> for thing in data:
    (s, num) = thing
    print thing, '\t', s, '\t', num

('House Theft', 57)     House Theft     57
('House Fire', 48)      House Fire      48
('Car Theft', 156)      Car Theft       156
('Car Accident', 245)   Car Accident    245
>>>

>>> for (s, num) in data:
    print s, '\t\t', num


House Theft         57
House Fire          48
Car Theft           156
Car Accident        245
>>>

plt.xticks(x + width/2.0, labels )将使x轴上的刻度线偏移一半宽度。不知道为什么这样做,除了视​​觉效果。

>>> x = np.arange(1,11)
>>> x
array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10])
>>> width = .5
>>> x + width/2
array([  1.25,   2.25,   3.25,   4.25,   5.25,   6.25,   7.25,   8.25,   9.25,  10.25])
>>> 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章