专栏首页AI机器思维看这个就够了——用程序实现各类优美的图形大全

看这个就够了——用程序实现各类优美的图形大全

作者 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画图中程序,大家可以根据讲解的参数修改参数实现不同的图形,颜色等。


本文分享自微信公众号 - AI机器思维(jiqisiwei)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 学Linux到底学什么?

    我们常常听到很多人说要学学Linux或者被人告知说应该学学Linux,那么学Linux到底要学什么?

    编程珠玑
  • iOS学习——(转)解决iOS App打包后dSYM文件找不到的问题

    针对这种情况,通常是因为Project -> Build Settings下的Debug Information Format的值被设置为DWARF。需修改为D...

    mukekeheart
  • 代码美化的艺术

    原本只是想简单的聊一下代码格式化的问题,无奈本文拖沓了很久,在此期间,我又思考了很多,我越来越觉得代码格式化是一门艺术。为了衬托“艺术”二字,可能叫“代码美化”...

    叙帝利
  • 聊聊 Python 的单元测试框架(三):pytest

    本篇文章是《聊聊 Python 的单元测试框架》的第三篇,前两篇分别介绍了标准库 unittest 和第三方单元测试框架 nose。作为本系列的最后一篇,压轴出...

    Python猫
  • Salesforce LWC学习(五) LDS & Wire Service 实现和后台数据交互 & meta xml配置

    之前的几节都是基于前台变量进行相关的操作和学习,我们在项目中不可避免的需要获取数据以及进行DML操作。之前的内容中也有提到wire注解,今天就详细的介绍一下对数...

    用户1169343
  • map的实现和柯里化(Currying)

      对于函数式编程来说,map/reduce/filter这几个算子非常重要,其中有的语言不是reduce而是fold,但功能基本一样,不过reduce的迭代一...

    窗户
  • Jupyter Notebook数据格式解析

    经常用Jupyter Notebook写Python代码,看到这个需求不是想去找轮子而是想自己做解析和合并。通过深入文件格式去加深对Jupyter Notebo...

    蛰虫始航
  • 用Python处理PDF

    PDF作为可移植文档格式(Portable Document Format),在日常生活中经常接触到,最近处理一些数据更是频繁接触一些需要批量处理pdf文件的需...

    蛰虫始航
  • Java之BigDecimal详解

    ​ Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效...

    用户1195962
  • 30 段极简 Python 代码:这些小技巧你都 Get 了么

    学 Python 怎样才最快,当然是实战各种小项目,只有自己去想与写,才记得住规则。本文是 30 个极简任务,初学者可以尝试着自己实现;本文同样也是 30 段代...

    用户2769421

扫码关注云+社区

领取腾讯云代金券