python matplotlib条形图,matplotlib绘制条形图的函数
Matplotlib是Python的绘图库,它允许用户轻松地绘制数据,并提供各种输出格式。本文将向大家介绍如何用matplotlib绘制条形图和直方图,有兴趣的朋友可以学习一下。
00-1010摘要一、bar()函数二、hist()函数三、数据统计
目录
首先介绍条形图直方图,然后用随机数生成一系列数据并保存在列表中。最后统计并显示相关随机数据的概率。
本文介绍了上述由标记点构成的拆线图和由散点构成的图形。matplotlib中的plot()和scatter()函数主要用于将点连接成线。但现实生活中,不仅有折线图,还有月度经济数据对比图、身高统计图等。制作图表时,很容易比较和看出差异。
利用matplotlib中的bar()函数和hist()实现条形图和直方图。
摘要
bar()函数的主要参数如下:
条形图(x,height,width=0.8,bottom=None,*,align=center ,data=None,**kwargs)
参数1: X3360标量类型,X轴上的坐标。或者浮点数数组结构。注意,x可以是字符串数组
参数2:高度:y轴上的坐标。或者浮点数数组结构。
参数:width:指定柱形图的宽度。或者浮点数数组结构。默认值为0.8
参数:bottom:标量或标量数组类型,y坐标的起始高度。
5: align:直方图在X轴上的对齐方式,可选{center , edge}中心:中心对称边缘:边缘对称
6: * * kwargs:将接收到的关键字参数传递给关联的矩形。返回值:BarContainer实例,其patches属性是一列列表。
条形图(Bar chart)一个简单的例子,随机设置12个月,并给定一些数据,代码如下:
Plt。条形([1,2,3,4,5,6,7,8,9,10,11,12,13],[5,2,7,8,2,1,8,6,2,5,6,7,10],)
Plt.legend() #显示运行结果中的图例名称。
plt.xlabel(条形编号)
plt.ylabel(条形高度)
plt.title(“测试”)
plt.show()
第一列中的Color= red 表示所有直方图都以红色显示。要显示差异,请进行以下修改:
将matplotlib.pyplot作为plt导入
plt.bar([1,3,5,7,9,11],[5,7,8,6,7,10],label=测试一,color=#202204 )
Plt.bar ([2,4,6,8,10,12],[8,6,2,5,6,7],label= testtwo ,color= g) # color也可以是十六进制,如上面的#202204所示。
Plt.legend() #显示运行结果中的图例名称。
plt.xlabel(条形编号)
plt.ylabel(条形高度)
plt.title(“测试”)
plt.show()
具体结果如下:
一、bar()函数
hist(x,bins=None,range=None,density=None,weights=None,cumulative=False,bottom=None,histtype="bar ",align="mid ",orientation="vertical ",rwidth=None,log=False,color=None,label=None,stacked=False,normed=None,hold=None,data=None,**kwargs)
hist()函数的
基础参数如下:
x :表示输入值,可以是单个数组,或者不需要相同长度的数组序列。
bins:表示绘制条柱的个数。若给定一个整数,则返回 bins+1 个条柱,默认为10。
range:bins的上下范围(最大和最小值)。
color:表示条柱的颜色,默认为None。
facecolor #直方图颜色
edgecolor #直方图边框颜色
alpha # 透明度
histtype #直方图类型,‘bar’, ‘barstacked’, ‘step’, ‘stepfilled’
orientation # 水平或垂直方向
rwidth #柱子与柱子之间的距离,默认是0
下面通过一个例子来说明hist()函数的作用:
import matplotlib.pyplot as plt
注意:bins[]中60,80和100,130中间缺少是故意为之,为了显示区别
运行结果如下:
很明显,hist()函数会自动根据参数bins中的区分将参数x中的数据自动进行统计。
搞事情,既然参数x(如例子中的population_ages)可能是数列,那能否用随机函数自动生成数组,然后在进行统计呢?当然可以。
三、数据统计
色子经常用来娱乐(用作他途造成后果与我无关),它有6个面,分别点数为1,2,3,4,5,6,可利用随机函数(上篇中的choice函数)来随机产生,比如choice([1,2,3,4,5,6]),产生N次(比如20万次)并将每次结果保存到列表中,最后统计出各点的总数或所点比例。
分析:
1)先建一个类,其功能就是运行一次,就随机选择6个面(点数)
2)将色子实例化,并给定一个参数(运行的次数),图形化显示出来。
class Sezi():
运行结果:
与此同时,为了后面方便,引入另一个随机函数randint(x, y),这个函数的作用是产生x-y之间的数字,比如randint(1,10),就产生1到10之间的数字。
choice([1,2,3,4,5,6])可以修改为randint(1,self.sides),这样实例化后,需要输入随意一个面数,就会随机产生对应的数字。
上述还只是打印在交互栏,且类、实例还是在一个文件中,分成不同的文件,并数据统计用图的形式显示。
1.重新修改色子类
文件名sezi.py,里面代码如下:
from random import *
2.新建一个名称sezigame.py的文件,代码如下
import matplotlib.pyplot as plt
运行结果:
如果有2个相同的色子呢?
同时掷两个骰子,最小为2,最大为12,结果分布情况自然也就不同。
将名称sezigame.py的文件修改,改动后的代码如下:
import matplotlib.pyplot as plt
运行结果如下:
是不是有点正态分布的感觉了?
以上就是Python+matplotlib绘制条形图和直方图的详细内容,更多关于Python matplotlib条形图 直方图的资料请关注盛行IT软件开发工作室其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。