Matplotlib是一个Python工具箱,用于科学计算的数据可视化。借助它,Python可以绘制如Matlab和Octave多种多样的数据图形。
圆饼图-pie()
pie()最基本的输入数据是一个数组。它可以根据数组元素的比例绘制扇形,因此不必要事先计算好百分比。
1 | import matplotlib.pyplot as plt |
样式
有几个最常用的参数可以控制绘图样式:
colors - 数组,扇形颜色
explode - 数组,扇形偏离圆心的距离
labels - 数组,扇形的标签
首先,让我们为饼图设定颜色,并让第三个扇形抽离出来:
1 | import matplotlib.pyplot as plt |
然后,要为每个扇形添加标签:
1 | import matplotlib.pyplot as plt |
百分比
如何显示百分比数值呢?我们需要使用autopct参数:
None,不显示百分比
格式字符串,如‘%d percent‘,显示“40 percent”形式的百分比
方法,调用方法输出百分比
1 | import matplotlib.pyplot as plt |
autopct=‘%d%%‘表示我们将百分比以整数(%d)形式输出,后缀是百分号‘%‘。在格式化字符串中,百分号要用‘%%‘转义字符表示。
1 | from pylab import * |
柱形图-bar()
什么是最简单的bar,看如下语句你就知道她有多么简单了:
1 | import matplotlib.pyplot as plt |
left:柱形的左边缘的位置,如果我们指定1那么当前柱形的左边缘的x值就是1.0了
height:这是柱形的高度,也就是Y轴的值了
left,height除了可以使用单独的值(此时是一个柱形),也可以使用元组来替换(此时代表多个矩形)。例如,下面的例子:
1 | import matplotlib.pyplot as plt |
当然,可能你还觉得这两个矩形“太胖”了。此时我们可以通过指定bar的width参数来设置它们的宽度。
此时又来需求了,我需要标明x,y轴的说明。比如x轴是性别,y轴是人数。实现也很简单,看代码:
1 | import matplotlib.pyplot as plt |
接下来,让我们在x轴上的每个bar进行说明。比如第一个是“男”,第二个是“女”。
我们可以通过直接指定bar方法里面的align=”center”就可以让文字居中了。
接下来,我们还可以给图标加入标题。
plt.title(u”性别比例分析”)
当然,还有图例也少不掉:
1 | import matplotlib.pyplot as plt |
柱状图-bar()
bar()函数可以绘制各种样式的柱状图,barh()则可绘制水平方向的柱状图。两个方法除了绘图方向外,其他属性和用法的是相同的。
数据和坐标
bar()至少需要两个数组left和height:left是每个柱向左到坐标原点的距离;height是每个柱的高度。
1 | mport matplotlib.pyplot as plt |
样式
bar()函数的参数可以控制柱状图的多种样式,最常用的有:
width,第3个参数,柱的宽度。可以是一个常数或数组。数组将对每条柱设定不同的值。
bottom,第4个参数,柱底部的y轴坐标。可以是一个常数或数组。数组将对每条柱设定不同的值。
color,关键字参数,柱的填充颜色。可以是一个常数或数组。数组将对每条柱设定不同的值。
edgecolor,关键字参数,柱的边框颜色。
linewidth,关键字参数,边框宽度。
xerr,yerr,关键字参数,x和y轴误差线。
ecolor,关键字参数,误差线颜色。
align,关键字参数,设定柱的对齐方式。‘edge‘将x坐标设为左边界,‘center‘将x坐标设为中轴线。
下面的柱状图要表达一件商品12个月的销量:
1 | import matplotlib.pyplot as plt |
我们设置柱宽度0.5,填充颜色‘y‘(黄色),边框颜色‘g‘(绿色),线框宽度3,对齐方式为‘center‘
1 | import matplotlib.pyplot as plt |
多段柱图和水平柱图
绘制多段柱图的原理是:先后绘制多张柱图,依次重叠在上方,如果后面绘制的柱图比前者的柱图短,就可以显示出前者长出的部分。
1 | import matplotlib.pyplot as plt |
最后,让我们来绘制一个水平柱图,只需将bar()替换成barh():
1 | import matplotlib.pyplot as plt |
折线图和散点图-plot()
plot()函数可以绘制折线图和折线图,取决于您使用的参数。
数据和坐标
1 | import matplotlib.pyplot as plt |
绘制折线图/散点图需要一系列关键点。x是关键点的x轴坐标,y是关键点的y轴坐标。
x轴坐标是可以缺省的:
plot(y)
y是一个一维数组,是折线图关键点的y轴坐标。而x轴坐标没有给出,会默认以[0,1,2,…]的常数列作为x轴坐标。
样式
散点图和折线图只是线条样式的差异,我们可以通过简单的参数设置线条的样式和颜色。样式和颜色参数都是一个或多个字符构成的字符串。
既可以单独设定颜色或样式,如‘g‘代表绿色,‘-‘代表实线
也可以同时设定样式和颜色,比如‘–g‘代表绿色虚线,其中‘–‘代表虚线,‘g‘代表绿色
样式字符串中的参数字符是无顺序的,‘g–‘和‘–g‘的意义是相同的
也可以同时设定折线和散点,如‘-or‘代表红色实线+圆圈
1 | import matplotlib.pyplot as plt |
折线样式:
参数 样式
‘-‘ 实线
‘–‘ 虚线
‘-.‘ 线-点
‘:‘ 点虚线
散点样式:
参数 样式
‘.‘ 实心点
‘o‘ 圆圈
‘,‘ 一个像素点
‘x‘ 叉号
‘+‘ 十字
‘*‘ 星号
‘^‘ ‘v‘ ‘<‘ ‘>‘ 三角形(上下左右)
‘1‘ ‘2‘ ‘3‘ ‘4‘ 三叉号(上下左右)
颜色:
参数 颜色
‘b‘ 蓝
‘g‘ 绿
‘r‘ 红
‘c‘ 青
‘m‘ 品红
‘y‘ 黄
‘k‘ 黑
‘w‘ 白
您也可以不必使用样式字符串,而直接使用参数名,这种方式更加灵活:
1 | plot(x, y, color=‘green‘, linestyle=‘dashed‘, marker=‘o‘, markerfacecolor=‘blue‘, markersize=12) |
多条线
我们可以在一个坐标中绘制多条折线或散点,plot(第一条线的参数,第二条线的参数…):
1 | import matplotlib.pyplot as plt |
更多请参考