下文主要内容来自课堂讲义,由本人整理。

1. 画图前准备

1.1 pip安装pandas、numpy、plt库;

1.2 中文显示问题:

win系统直接添加:

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

但是在MAC系统下中文字体显示问题报错:

Font family [‘sans-serif‘] not found.Falling back to DejaVu Sans.

解决方法:

  1. 在python下输入代码获取自己mac内字体存放路径:matplotlib.matplotlib_fname()
  2. 下载黑体字体后拷贝到第1步中找到到路径中存放字体文件夹

    大致路径如下

    /Users/********/lib/python3.8/site-packages/matplotlib/mpl-data/fonts/ttf

  3. 需要在Finder根目录下,按shift+command+. (.是英文句号),开启隐藏目录后删除下图中Fontlist文件。重启python即可。

2. 引例——文件读取

数据,存为.csv文件:

,语文 ,数学 ,英语 ,计算机 ,物理 ,化学 ,体育
宋丽英 ,86,64,85,88,90,55,98
王大伟 ,92,99,95,94,92,94,90
顾亦菲 ,91,87,99,95,95,92,85
鲁一平 ,78,99,75,81,83,88,92
潘晓雯 ,88,78,98,84,70,95,98

分析每门课的成绩,制作箱型图。

import matplotlib.pyplot as plt
import pandas as pd
scores=pd.read_csv("data1.csv",index_col=0)
plt.rcParams['font.sans-serif']=['SimHei']
scores.boxplot()
plt.show()

-|-

3. 【例1】 条形图的绘制步骤

第一步:导入必要的库

import matplotlib.pyplot as plt
import numpy as np

第二步:新建绘图区或子绘图区

plt.figure(figsize=(4,3),facecolor='b')
或者:
fig,ax=plt.subplots(figsize=(4,3))

第三步:准备数据

kc=('语文', '数学', '英语') # 课程信息
cj= (70, 95, 80) # 成绩数据

第四步:设置图表属性

ax.set_xlabel('课程')  #设置X轴的标题
ax.set_ylabel('成绩')  #设置Y轴的标题
ax.set_title('成绩示例')  #设置图表标题
ax.set_xticks(np.arange(3))   #设置分类轴的刻度[0,1,2]
ax.set_xticklabels(kc)   #设置分类轴的显示标签

第五步:绘制图表

rt = plt.bar(np.arange(3) , cj , label='刘芸')
#参数1指定分类轴的刻度,参数2指定作图用的数据,参数3指定图例的标签文本

第六步:显示图例

ax.legend(bbox_to_anchor=(1,0.8)) #显示图例文字

第七步:显示图表

plt.show()

3.1 绘图区

Matplotlib的图表区主要包括绘图区、图像和辅助显示对象
1 绘图区:包含Canvas、Figure和Axes三个对象,既可以由系统自动创建,也可以根据需要调用Figure()函数创建;
2 图像:调用各个绘图函数绘制的柱状图、折线图、饼图和散点图等;
3 辅助显示对象:包括标题、坐标轴、坐标轴名称、坐标轴刻度、坐标轴刻度 标签、图表边框线、网格线、图例、前景色等内容;

  • ·创建绘图区

(1)自动创建绘图区:直接调用绘图函数,系统自动创建一个默认大小的绘图区

(2)手动创建绘图区:如下

import matplotlib.pyplot as plt
plt.figure(figsize=(6,4),dpi=72) #绘图区指定为6*4英寸,分辨率为72
plt.plot((3,6)) #绘制一条从顶点(0,3)到顶点(1,6)的直线
  • ·绘图区函数

(1)figure( )函数           用于生成一个全局绘图区

figure([num=None, figsize=None, dpi=None, facecolor=None......, **kwargs])

注意:当前绘图区上没有建立坐标轴,默认不显示该全局绘图区。
如:

plt.figure()

plt.figure(figsize=(6,6),facecolor=‘g')

(2)axes( )函数            生成坐标系风格的绘图区并显示

plt.axes(arg=None, **kwargs)

plt.axes(rect, projection=None, polar=False, **kwargs)如:plt.axes((0.1,0.3,0.5,0.8),facecolor='y')

注意:参数1对应(left,bottom,width,height),坐标原点默认为左下角的(0,0)

  • ·创建子绘图区

(1)subplot( )函数 在全局绘图区创建子绘图区并显示 
subplot(nrows, ncols, index, **kwargs)
注意:如果nrows、ncols和index都小于10缩写为一个整数 
subplot(323)等价于subplot(3,2,3)
plt.subplot(1,1,1) #表示有1行1列,绘制在第1个子绘图区 
plt.subplot(232) #有2行3列共6个子绘图区,只显示第2个

(2)add_subplot(nrows, ncols, index[, **kwargs])
   用于给已有全局绘图区添加子绘图区

import matplotlib.pyplot as plt
import numpy as np
fig1=plt.figure( )
fig1.add_subplot(222)
plt.plot((5,3,5),c='b',marker='D')
fig1.add_subplot(223)
x=np.random.randint(0,100,50)
y=np.random.normal(0,100,50)
plt.scatter(x,y,c='r')
plt.show()

(3)subplots(nrows, ncols, **fig_kw)函数
  创建全局绘图区,然后添加多个子绘图区并显示所有子绘图区

import matplotlib.pyplot as plt
import numpy as np
fig,ax = plt.subplots(nrows=2,ncols=3,figsize=(6,4),dpi=72)
plt.subplots_adjust(wspace=0.3,hspace=0.3) #调整子绘图区之间的间隔
ax[0][1].plot((5),'y^') #在第0行第1列的子绘图区绘制一个黄色三角标记
ax[1][2].plot((3,8),'g') #在第1行第2列的子绘图区绘制一条绿色线条
plt.show()

注意:
[1]当行数与列数值均大于1时,用ax[i][j]访问;
[2]当行数或列数只有一个值等于1时,用ax[i]访问; 
[3]当行数与列数值均等于1时,用plt或ax访问;

3.2 常见图表函数

函数 描述

plt.plot(x,y,color,linewidth,linestyle,label)

根据x,y数组绘制直线或曲线

plt.boxplot(data,label)

绘制一个箱型图

plt.bar(x, height, width, bottom, *, align='center', **kwargs)

绘制一个条形图(即柱状图)

plt.barh(y, width, height, left, *, align='center', **kwargs)

绘制一个横向条形图

plt.polar(theta,r)

绘制极坐标图

plt.pie(data,explode)

绘制饼图

plt.scatter(x,y)

绘制散点图

plt.hist(x,bins,normed)

绘制直方图

plt.contour(X,Y,Z,N)

绘制等高线

3.3 坐标轴设置函数

函数 描述

plt.axis( )
输出:(0.0, 1.0, 0.0, 1.0)

显示当前坐标轴刻度的取值范围

plt.axes( )

输出:<matplotlib.axes._subplots.AxesSubplot at 0x22f751cb3c8>

显示子绘图区

plt.xlim(xmin=1,xmax=5)

设置X轴刻度取值范围为[1,5]

plt.ylim(ymin=3,ymax=6)

设置Y轴刻度取值范围为[3,6]

plt.xscale(scale )
scale : ['linear' | 'log' | 'logit' | 'symlog']

设置X轴缩放

plt.yscale(scale)

设置Y轴缩放

plt.autoscale( )

自动缩放轴视图的数据

plt.text(x,y,s,fontdic,withdash)

如:plt.text(0.5,0.5,'Max')

在指定位置添加注释文本
在两个坐标轴的中间位置输出“Max”

plt.grid(True/Flase)

是否显示绘图网格

3.4 标签设置函数

函数 描述

plt.title("TITLE",loc='right')

设置图表的标题loc:{'center','left','right'}

plt.xlabel(“水平轴标题”)

设置X轴的标题

plt.ylabel(“垂直轴标题”)

设置Y轴的标题

plt.legend(loc=‘upper right’ )

或直接指定相对位置:

ax.legend(bbox_to_anchor=(1,0.8))

在指定位置显示图例

一般在绘图函数中用label参数

指定图例的文本内容

plt.xticks( )
如:plt.xticks(np.arange(3), ('Tom', 'Dick', 'Harry'))

设置X轴的刻度范围及显示标签

plt.yticks( )

如:plt.yticks(np.arange(3), ('1','2','3'))

设置Y轴的刻度范围及显示标签

3.5 绘制线条

plot( ): 用于绘制线条和标记,不仅可以绘制折线图、曲线图,还可以制作 出类似散点图的效果。 plot函数的使用形式为:

plt.plot([x],y, [fmt],**kwargs)

(1)x和y通常是列表或元组等序列,x中存储所有顶点的x坐标序列,y中存储所有顶点的y坐标序列, 其中参数x可以缺省,缺省值为列表[0, 1, 2, ..., n-1]。

(2)参数fmt是一个字符串变量,用于定义图表的基本属性,如颜色(color)、标记(marker)、 线型(linestyle)等。

如:plt.plot([2,3],[5,7], 'bD:', linewidth=5)

(3)kwargs是一个关键字参数,用于接收0个或多个由属性与属性值组成的键值对。若颜色属性赋值 为"green"、"black"等单词形式,则不能用fmt参数来组合赋值,必须对单个颜色属性赋值。

如:plt.plot([2,3],[5,7], color='blue', marker='D', linestyle =':',linewidth=5)

plt.plot((5),‘ro’)  #在坐标(0,5)处绘制一个红色的圆点
plt.plot((5,10),‘g’)  #从(0,5)到(1,10)绘制一条绿色的直线
plt.plot((5,10,3),‘B’) #从(0,5)到(1,10)再到(2,3)绘制一条蓝色的折线
  
注意:省略x坐标的话,x坐标默认为列表[0,1,2,...,N-1]

小栗子

python可视化第一篇——基于matplotlib库相关推荐

  1. Python可视化数据分析10、Matplotlib库

    Python可视化数据分析10.Matplotlib库

  2. 单片机学习:第一篇 基于Python的树莓派语音助手

    title: 单片机学习:第一篇 基于Python的树莓派语音助手 tags: 树莓派,python,语音助手,百度AIP 目录 一.pyaudio录音 二.语音识别 三.与图灵机器人对话 四.语音合 ...

  3. 可视化之瀑布图的绘制--基于matplotlib库

    可视化之瀑布图的绘制--基于matplotlib库 第一步:前期准备-导入数据 第二步:打好基础1-画出堆叠柱形图的样子 第三步:打好基础2-并排柱形图 第四步:瀑布图成形 第五步:瀑布图优化1-柱体 ...

  4. python pptx教学_基于python-pptx库中文文档及使用详解

    个人使用样例及部分翻译自官方文档,并详细介绍chart的使用 一:基础应用 1.创建pptx文档类并插入一页幻灯片 from pptx import Presentation prs = Presen ...

  5. Python人工智能第一篇:语音合成和语音识别

    Python人工智能第一篇:语音合成和语音识别 ​此篇是人工智能应用的重点,只用现成的技术不做底层算法,也是让初级程序员快速进入人工智能行业的捷径.目前市面上主流的AI技术提供公司有很多,比如百度,阿 ...

  6. Python学习第九篇:zipfile 库操作压缩包

    ​ Python学习第九篇:zipfile 库操作压缩包 -- 活动地址:CSDN21天学习挑战赛 zipfile是python里用来做zip格式编码的压缩和解压缩的 zipfile里有两个非常常用的 ...

  7. python数据可视化开发(1):Matplotlib库基础知识

    文章目录 前言 01.工具栏组件 02.图表数据 03.设置字体字典 全局字体样式 常用中文字体对应名称 查询当前系统所有字体 04.图像配置实例 配置格式 参数说明 官方文档:[matplotlib ...

  8. Python画各种 3D 图形Matplotlib库

    回顾 2D 作图 用赛贝尔曲线作 2d 图.此图是用基于 Matplotlib 的 Path 通过赛贝尔曲线实现的,有对赛贝尔曲线感兴趣的朋友们可以去学习学习,在 matplotlib 中,figur ...

  9. 带你写爬虫(python)第一篇----抓取安徽理工大学新闻网中所有新闻

    最近一直在学习python爬虫,所以一直想写个简单的爬虫教程,所以第一篇就拿母校新闻网官网来练手了,没想到写爬虫的过程还停一波三折的.(后来发现新闻网页面还有访问限制,多次访问后,本机ip就被限制了, ...

最新文章

  1. SQL on Linux Run on Docker
  2. log4j.properties 详解与配置步骤总结
  3. c++STL中的find()函数 有两种使用方法
  4. 【2016年第5期】卫星影像大数据情报分析与应用
  5. “3D几何与视觉技术”全球在线研讨会第九期~识别3D中的物体和场景
  6. Magoshare Data Recovery使用教程:在mac上恢复找回删除的丢失文件
  7. 2月第3周业务风控关注|上海网信办复测23个被约谈APP 涉及1号店、小红书等
  8. HttpModule HttpHandler(转)
  9. linux nfs async,Linux下NFS共享以及oracle rman挂载优化
  10. 室内三维地图编辑器,制作地图软件哪个最好
  11. linux 卸载vsftpd服务器,vsFPT服务器搭建与卸载
  12. 运维部门工作总结_运维工作个人工作总结范文
  13. F28335学习之ADC配置
  14. 程序员做自媒体,龙叔教你怎么快速成为优秀博主【CSDN篇】
  15. 无法安装冰点还原_教程|有备有还,再备不难,如何实现整机还原?
  16. 笔记三、最大数字(C++)
  17. 2017计算机信息类ei,2017年EI收录的中国期刊目录.pdf
  18. 浙江杭州一男子网恋1年求见面, 开门一看这美女长得像“李逵”
  19. 2022-2028全球与中国语音控制设备市场现状及未来发展趋势
  20. 又一位程序员要去IPO敲钟:40岁,知乎老板做出200亿

热门文章

  1. Zynq-PL之HDMI显示
  2. 根据下标获取excel列名
  3. java语言说课猜数字游戏_DOC:小学一年级数学《猜数游戏》说课稿教案三篇整理版...
  4. WPF 基础控件之 ToggleButton 样式
  5. ln火线零线_LN哪个代表零线哪个代表火线?
  6. AAAI 2019评审惹争议!“好论文”遭退稿?程序主席回应
  7. oracle jdbc驱动 ojdbc14-10.2.0.4.0.jar 网盘下载
  8. Linux:split 文件分割和合并
  9. 交换机的工作原理,以太网及华为交换机的命令指令
  10. K8S实战集训第二课 K8S 存储 之 Ceph 分布式存储系统