先放出第一期让大家回顾一下上次的内容
第一期主要给大家讲了一些图形设置的东西。这一次开始正式带大家画图~
折线图:折线图可以通过matplotlib中的.plot()函数实现,括号内直接填入数据即可
<pre class="code-snippet__js" data-lang="makefile">score=[121,132,137,145,149,153,158]
plt.plot(score)
plt.show()</pre>
在绘制折线图时还可以为折线图加上一个区间阴影,加入区间阴影的函数为.fill_between(x,y1,y2,where=条件表达式,color=颜色,alpha=透明度)。绘制出来最终会把在where条件下的y1与y2之间的范围填充。举例:
<pre class="code-snippet__js" data-lang="makefile">score=[121,132,137,145,149,153,158]
plt.plot(score)
x=list(range(7))
y1=[120,125,130,135,140,145,150]
y2=[125,135,145,155,165,175,185]
print(x)
print(y1)
print(y2)
plt.fill_between(x,y1,y2,where=None,color='pink',alpha=0.2)
plt.show()</pre>
直方图:使用matplotlib中的.hist()函数进行绘制。括号中最少需要填入两个参数,第一个参数为要进行统计的数字,第二个参数为划分为几个区间来统计,其实第二个参数也可以不填写,系统自行判定划分为几个区间,看自己的需求来决定第二个参数。
<pre class="code-snippet__js" data-lang="makefile">score=[120,123,123,128,132,137,138,138,145,145,127,148,148,148,149,151,153,155]
plt.hist(score,7)</pre>
条形图:使用matplotlib()中的bar()进行绘制
首先先和大家区分一下直方图和条形图。条形图通常用来描述分类数据,如男女、学历、职业这种;而直方图是什么值都可以取得,用于连续型数据、如工资,3200可以,3200.1也可以。
条形图的画法
<pre class="code-snippet__js" data-lang="makefile">x=list(range(8))
Y = [5,6,2,9,7,5,4,7]
plt.bar(x,Y1,width = 0.6,facecolor = 'blue',edgecolor = 'black')
plt.show()</pre>
代码中的x是柱子对应类别的编号,画图是必须通过这个编号唯一标识某一类的。Y就是对应类别编号的数量,width对应柱子的宽度,取值范围(0,1),facecolor为柱子的填充色,edgecolor为柱子描边的颜色。
当我们想要绘制水平的条形图时需要使用另一个函数.barh()。其中表示柱子宽度的参数width将不再适用,现在更改柱子的粗细需要使用height。例:
<pre class="code-snippet__js" data-lang="makefile">x=list(range(8))
Y1 = [5,6,2,9,7,5,4,7]
plt.barh(x,Y1,height = 0.6,facecolor = 'blue',edgecolor = 'black')
plt.show()</pre>
其中还有一个参数bottom,他是绘制柱子的基准,通过更改这个参数可以绘制堆叠条形图。例如
<pre class="code-snippet__js" data-lang="makefile">x=list(range(8))
Y1 = [5,6,2,9,7,5,4,7]
Y2 = [3,6,4,3,5,6,5,4]
plt.bar(x,Y1,width = 0.6,facecolor = 'blue',edgecolor = 'black')
plt.bar(x,Y2,width = 0.6,facecolor = 'red',edgecolor = 'black',bottom=Y1)
plt.show()</pre>
让Y2以Y1为基准开始绘制,就可以完成堆叠图。
现在观察上面的图,类别都用类别编号表示,读图时非常不直观。此时我们可以通过tick_label函数添加条形图的信息,例:
<pre class="code-snippet__js" data-lang="php">x=list(range(6))
Y1 = [5,6,2,9,7,5]
L=['one','two','three','four','five','six']
plt.barh(x,Y1,tick_label=L,height = 0.6,facecolor = 'blue',edgecolor = 'black')
plt.show()</pre>
虎哥今日python小课堂先到这啦今天讲了三种图,所以大家知道的,一定还会有第三期那我们下期见~