作者 I Nature
出品 I AI机器思维
大数据时代,数据分析与报告中少不了做图表。matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。Matplotlib则比较强:Matlab的语法、python语言、latex的画图质量(还可以使用内嵌的latex引擎绘制的数学公式)。
案例1:饼图实现销售分布占比图显示
程序首先导入用到的模块matplotlib,然后处理存储在文件夹中的数据,通过plt.pie()语句中的参数设置绘制饼图,通过plt.rcParams['font.sans-serif'] = ['SimHei'];
plt.rcParams['axes.unicode_minus'] = False语句处理中文字符在图表的显示问题。
运行程序后结果:
案例2:对案例1程序修改配色,修改语句:
colors = ["palegreen","skyblue","plum","mistyrose"]
可以实现不同图表颜色显示,其他程序不用改,程序如下:
程序执行后图表显示如下:
只需要把程序中颜色语句这句程序colors = ["palegreen","skyblue", "plum", "mistyrose"]修改不同的颜色搭配就可以做出优美的视觉图表.
python中matplotlib中color可用的颜色如下:
案例3:实现柱状图图表,数据文件为xiaosl.txt
通过程序实现柱状图如下:
程序运行后的结果显示图形如下:
解读说明只需要修改语句plt.bar(range(len(bqx)),bqx,color=colors,tick_label=vp)就可以,数据变量名为bqx为销售量,vp为省份名称变量,color=colors为语句colors = ["palegreen", "skyblue","plum", "mistyrose"]定义的颜色组,修改这个可以改变图表显示的各省颜色柱状图。
案例4:条形状态,把案例3语句plt.bar(range(len(bqx)),bqx,color=colors,tick_label=vp)改为: plt.barh(range(len(bqx)), bqx,color=colors,tick_label=vp),程序其他不修改,程序如下:
程序运行后图形显示为条形状态:
案例5:折线图,正弦和余弦函数
程序运行后图形显示如下:
案例6:对案例5程序修改,加入语句:
plt.plot(x, y1, label='y = sin(x)')
plt.plot(x, y2, label='y = cos(x)')
plt.legend()
说明:在plot的时候指定label,然后调用legend方法可以绘制。
legend方法可接受一个loc关键字参数来设定图例的位置,可取值为数字或字符串:
0: ‘best'
1: ‘upper right'
2: ‘upper left'
3: ‘lower left'
4: ‘lower right'
5: ‘right'
6: ‘center left'
7: ‘center right'
8: ‘lower center'
9: ‘upper center'
10: ‘center'
程序运行后显示图形为:
案例7:对案例6程序中语句plt.legend()修改为plt.legend(loc=1),加入了loc=1参数,改变了案例6中左下角的显示标识图形的位置。
程序运行后图形显示如下:
案例8:对于均为[0, 1]之间,[0, 1]之间的浮点数的字符串形式,表示灰度值。0表示黑色,1表示白色。
(2)样式
plot方法的关键字参数linestyle(或ls)用来设置线的样式。可取值为:
-, solid
--, dashed
-., dashdot
:, dotted
'', ' ', None
(3)粗细
设置plot方法的关键字参数linewidth(或lw)可以改变线的粗细,其值为浮点数。
程序如下,修改了语句为这两个语句
plt.plot(x, y1, label='y = sin(x)',c='r',ls='--', lw=3)
plt.plot(x, y2, label='y = cos(x)',c='b',ls='--', lw=3):
程序运行后图形显示如下:
案例9:对案例8改造,plot中的参数:
marker
以下关键字参数可以用来设置marker的样式:
marker
markeredgecolor 或 mec
markeredgewidth 或 mew
markerfacecolor 或 mfc
markerfacecoloralt 或 mfcalt
markersize 或 ms
其中marker可取值为:
'.': point marker
',': pixel marker
'o': circle marker
'v': triangle_down marker
'^': triangle_up marker
'<': triangle_left marker
'>': triangle_right marker
'1': tri_down marker
'2': tri_up marker
'3': tri_left marker
'4': tri_right marker
's': square marker
'p': pentagon marker
'*': star marker
'h': hexagon1 marker
'H': hexagon2 marker
'+': plus marker
'x': x marker
'D': diamond marker
'd': thin_diamond marker
'|': vline marker
'_': hline marker
程序如下,对plot中的参数修改,图形会有大变化:
plt.plot(x, y1, marker='o', mec='r', mfc='w')
plt.plot(x, y2, marker='*', ms=10)
同时我们把x = np.linspace(0, 2 * np.pi, 10)把参数100改为了10
程序运行后图形显示如下:
案例10:对案例9修改,另外另外,marker关键字参数可以和color以及linestyle这两个关键字参数合并为一个字符串。
程序如下:
程序运行后图形显示如下:
案例11:全球城市排名柱状图并对坐标轴加说明文字
plt.xlabel('全球城市名')
plt.ylabel('万亿美金')
这两个语句对坐标轴加入说明文字。
程序如下:
程序运行后图形显示如下:
以上是对python画图中程序,大家可以根据讲解的参数修改参数实现不同的图形,颜色等。