文章目录

  • 一、Matplotlib概念和基本属性设置思维导图
  • 二、折线图基础绘制及代码中相关参数解析
    • 1、代码
    • 2、结果展示
    • 3、Matplotlib图组件—官方
    • 4、jupyter Notebook获取函数及其参数使用方法
    • 5、代码函数和类常用参数详解
      • (1)`plt.figure()` 参数
      • (2)`font_manager.FontProperties()`参数
      • (3)`plt.plot()`参数
      • (4)`plt.legend()`参数
      • (5)`plt.grid()`参数
  • 三、条形图基础绘制
    • 1、简单条形图
      • (1)导入模块
      • (2)设置条形图的属性
      • (3)绘制条形图
      • (4)结果展示
    • 2、横向条形图
    • 3、并列条形图
    • 4、堆叠条形图
  • 四、直方图基础绘制
    • 1、直方图概念
    • 2、直方图绘制
      • (1)导入模块
      • (2)准备数据
      • (3)创建画布,设置相关属性
      • (4)直方图绘制
  • 五、饼图基础绘制

一、Matplotlib概念和基本属性设置思维导图

二、折线图基础绘制及代码中相关参数解析

1、代码

from matplotlib import pyplot as plt
from matplotlib import font_manager
#设置x,y的值
x1=[-7,-4,-1,0,3,5,7,9,12,15,16,17]
y1=[12,13,15,17,23,11,13,26,99,10,12,36]
y2=[-12,73,-15,7,13,33,12,36,9,11,1,7]#设置实例fig的大小和像素
fig = plt.figure(figsize=(30,10),dpi=300)#导入windows的字体
font = font_manager.FontProperties(fname='C:/Windows/Fonts/msyh.ttc',size=20)#设置图的图例名字,折线的颜色,透明度,折线宽度,和折点的形状,折点的大小,折点的颜色,折点边缘的颜色,这里形状为*
plt.plot(x1,y1,label='图例1',color='orange',alpha=1,linewidth=3,marker='*',markersize=30,markerfacecolor='red',markeredgecolor='purple',markeredgewidth=5)
plt.plot(x1,y2,label='图例2',color='green',alpha=1,linewidth=3,marker='o',markersize=20,markerfacecolor='purple',markeredgecolor='red',markeredgewidth=5)#设置图例的显示,显示为中文
plt.legend(prop=font,loc='upper right')#设置图的网格,x隐藏,只显示竖直方向的网格线,以及网格线的样式,透明度和宽度
plt.grid(axis='x',color='red',alpha=0.5,linestyle='--',linewidth=1)#设置x轴左边最大是-2,隐藏右边和上方的坐标轴,将左边和下方坐标轴0点重合形成新坐标轴
plt.xlim(left=-2)
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.spines['bottom'].set_color('blue')
ax.spines['left'].set_color('blue')
ax.spines['bottom'].set_position(('data',0))
ax.spines['left'].set_position(('data',0))#设置x轴和y轴的刻度,显示中文,旋转30度
x=[-8,-6,-4,-2,0,2,4,6,8,10,12,14,16,18]
y=[0,10,20,30,40,50,60,70,80,90,100]
x_ticks_label = ["{}度".format(i) for i in x]
plt.xticks(x,x_ticks_label,fontproperties=font)
y_ticks_label = ["{}个".format(i) for i in y]
plt.yticks(y,y_ticks_label,fontproperties=font)#设置x轴标签
plt.xlabel('温度',fontproperties=font)#显示图例1对应折线折点的x和y的值,坐标注释的位置,字体线型和字体颜色和外框显示
for a,b in zip(x1,y1):plt.annotate('(%s,%s)'%(a,b),xy=(a,b),xytext=(10,10),textcoords='offset points',weight='heavy',color='#0926f1', bbox=dict(boxstyle='round,pad=0.5', fc='yellow', ec='k', lw=1, alpha=0.5))
#显示图例2对应折线折点的坐标,垂直对齐方式,水平对齐方式,字体大小,字体背景颜色,旋转角度,透明度
for a,b in zip(x1,y2):plt.text(a,b,(a,b),ha='left',va='top',fontsize=12,color='#0926f1',backgroundcolor='yellow',rotation=3,alpha=0.5)
#保存生成的图片
plt.savefig('D:/tools/Git/data-analysis-learning-route/数据分析基础/python/python基础语法/示例.png')
plt.show()

2、结果展示

3、Matplotlib图组件—官方

4、jupyter Notebook获取函数及其参数使用方法

举例:获取abs函数和参数用法,输入后,点击运行,或者在光标位置按Shift+Tab

abs?

5、代码函数和类常用参数详解

(1)plt.figure() 参数
plt.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)
  • num:数字或者字符串,数字作为id,如果id预先不存在,则新增figure,按顺序递增编号,如果id存在,则返回对该图像的引用。字符串则是窗口标题
  • figsize:英寸单位,(宽,高)
  • dpi:设置图像分辨率
  • facecolor:背景颜色
  • edgecolor:边框颜色
  • frameon:是否显示边框
(2)font_manager.FontProperties()参数
font_manager.FontProperties(family=None,style=None,variant=None,weight=None,stretch=None,size=None,fname=None)
  • family:字体类别,默认值为sans-serif (无衬线体),其他的有serif(衬线体),cursive(手写体), fantasy(符号字体), monospace(等宽字体)
  • style:字体的样式,默认为normal(正常),其他的有italic(斜体),oblique(文本倾斜)
  • variant:默认为normal ,其他的为small-caps(小型大写字体)
  • weight:字体的粗细,采用0-1000的数值表示,也可用另一种表示,默认为normal,其他的为ultralight(超细),light(细),regular(常规),bookmedium(中等),roman(罗马字体),semibolddemibolddemiboldheavyextra bold(超粗),black(黑色)
  • stretch: 字体的拉伸,采用0-1000的数值表示,也可用另一种表示,ultra-condensedextra-condensedcondensedsemi-condensednormalsemi-expandedexpandedextra-expandedultra-expanded
  • size:字体大小,默认为10,使用数字,或者xx-smallx-smallsmallmediumlargex-largexx-large
  • fname:通过字体文件的绝对路径指定特定的字体,一般是windows自带字体
(3)plt.plot()参数
plt.plot(*args, scalex=True, scaley=True, data=None, **kwargs)

对于使用的人,比如我这个菜鸟,可能这个就太抽象了,即便后面他补充说明了几种参数,但我的使用主要还是集中在2D的一些我个人目前常用的绘图的属性设置,写到这里我学会了用word做表格更清晰明了

  • x,y:x是可选的,如果没写,则默认情况下是按照y的长度range,输入

  • alpha:`:透明度

  • animated:布尔值类型,动态绘图的一个参数

  • color:颜色,可以缩写成c

  • label:图例标签

  • linestyle:线的样式,可以缩写为ls,有如下几种:

  • linewidth:线的宽度,浮点型,可以缩写为lw

  • marker:折点的样式,有如下几种:

  • markeredgecolor:折点边缘颜色,可以缩写为mec:

  • markeredgewidth:折点边缘大小,可以缩写为mew

  • markerfacecolor:折点颜色,可以缩写为mfc

  • markersize:折点大小,可以缩写为ms

(4)plt.legend()参数
plt.legend(*args, **kwargs)
  • labels:图例的内容,列表
  • loc:设置图例的位置,有以下几种:
  • bbox_to_anchor:指定图例在轴/图形中的位置
  • ncol:图例列的数量,默认为1
  • prop:有值时为获取的字体,无值时一般使用的是matplotli在这里插入代码片b.rc函数的获取字体的功能
  • fontsize:字体大小,为数值时以磅为单位,一般没有指定prop的情况下,使用xx-small,x-small,small,medium,large,x-large,xx-large
  • shadow:是否在图例后面添加阴影
  • framealpha:设置图例框架透明度
  • title:图例标题,默认无
  • title_fontsize:图例标题字体大小
  • borderpad:图例边框的内边距,浮点型
  • labelspacing:图例条目之间的垂直间距
  • handlelength:图例句柄的长度
  • handletextpad :图例句柄和文本之间的差距
  • borderaxespad :轴与图例边框的距离
(5)plt.grid()参数
plt.grid(b=None, which='major', axis='both', **kwargs)

三、条形图基础绘制

1、简单条形图

(1)导入模块
from matplotlib import pyplot as plt
import matplotlib
(2)设置条形图的属性
#设置条形图每条的刻度,条形图高度
a = ['我','在','画','图','片','呢']
b = ['18.11','29.23','4.91','31.54','9.17','6.91']
matplotlib.rc("font",family='SimHei',size=18)
plt.figure(figsize=(20,8),dpi=80)
#设置坐标轴刻度、条形图高度、条形图宽度,颜色,
rects = plt.bar(range(len(a)),[float(i) for i in b],width=0.3,color=['r','g','b','y','k','m'])
# 在条形图上加水平居中的标注
for rect in rects:  #循环对每个条形图操作height = rect.get_height()  #获取每个条形图的高度plt.text(rect.get_x() + rect.get_width() / 2, height+0.3, str(height),ha="center")   #获取条形图在坐标轴上左边的坐标和宽度的一半的值,相加,加高度0.3,即在条形图中点上方0.3处
(3)绘制条形图
plt.xticks(range(len(a)),a)
plt.yticks(range(0,41,5),range(0,41,5))
plt.show()
(4)结果展示

2、横向条形图

from matplotlib import pyplot as plt
import matplotlib
a = ['你','看','我','画','的','图']
b = ['18.11','29.23','4.91','31.54','9.17','6.91']
matplotlib.rc("font",family='SimHei',size=18)
plt.figure(figsize=(20,8),dpi=80)
rects = plt.barh(range(len(a)),[float(i) for i in b],height=0.5,color=['r','g','b','y','k','m'])
plt.yticks(range(len(a)),a)
for rect in rects:width = rect.get_width()plt.text(width,rect.get_y()+0.5/2,str(width),va='center')
plt.show()

3、并列条形图

import matplotlib.pyplot as plt
import numpy as np
index = np.arange(4)
BJ = [50,55,53,60]
Sh = [44,66,55,41]
plt.bar(index,BJ,width=0.3,color='r')
plt.bar(index+0.3,Sh,width=0.3,color='b')
plt.xticks(index+0.3/2,index)
plt.show()

4、堆叠条形图

import matplotlib.pyplot as plt
import numpy as np
index = np.arange(4)
BJ = [50,55,53,60]
Sh = [44,66,55,41]
plt.bar(index,BJ,width=0.3,color='r')
plt.bar(index,Sh,bottom=BJ,width=0.3,color='g')  #以BJ为底部
plt.show()

四、直方图基础绘制

1、直方图概念

用连续的数据,一系列高度不等的纵向条纹或者线段展示一组或者多组的数据分布情况,横轴表示数据范围,纵轴表示分布情况

2、直方图绘制

(1)导入模块
import matplotlib
from matplotlib import pyplot as plt
(2)准备数据
time = [131,  98, 125, 131, 124, 139, 131, 117, 128, 108, 135, 138, 131, 102, 107, 114,119, 128, 121, 142, 127, 130, 124, 101, 110, 116, 117, 110, 128, 128, 115,  99, 136, 126, 134,  95, 138, 117, 111,78, 132, 124, 113, 150, 110, 117,  86,  95, 144, 105, 126, 130,126, 130, 126, 116, 123, 106, 112, 138, 123,  86, 101,  99, 136,123,117, 119, 105, 137, 123, 128, 125, 104, 109, 134, 125, 127,105, 120, 107, 129, 116,108, 132, 103, 136, 118, 102, 120, 114,105, 115, 132, 145, 119, 121, 112, 139, 125,138, 109, 132, 134,156, 106, 117, 127, 144, 139, 139, 119, 140,  83, 110, 102,123,107, 143, 115, 136, 118, 139, 123, 112, 118, 125, 109, 119, 133,112, 114, 122, 109, 106, 123, 116, 131, 127, 115, 118, 112, 135,115, 146, 137, 116, 103, 144,  83, 123, 111, 110, 111, 100, 154,136, 100, 118, 119, 133, 134, 106, 129, 126, 110, 111, 109, 141,120, 117, 106, 149, 122, 122, 110, 118, 127, 121, 114, 125, 126,114, 140, 103, 130, 141, 117, 106, 114, 121, 114, 133, 137,  92,121, 112, 146,  97, 137, 105,  98, 117, 112,  81,  97, 139, 113,134, 106, 144, 110, 137, 137, 111, 104, 117, 100, 111,101, 110,105, 129, 137, 112, 120, 113, 133, 112,  83,  94, 146, 133, 101,131, 116, 111,  84, 137, 115, 122, 106, 144, 109, 123, 116, 111,111, 133, 150]
(3)创建画布,设置相关属性
plt.figure(figsize=(20, 8), dpi=100)
matplotlib.rc('font',family='SimHei',size=18)
# 设置组距
distance = 4
# 计算组数:用数据里最大的值减去最小值除以组距
group = int((max(time) - min(time)) / distance)
(4)直方图绘制
plt.hist(time, bins=group, facecolor="blue", edgecolor="black", alpha=0.7)
plt.xticks(range(min(time), max(time))[::2])
plt.grid(linestyle="-.", alpha=0.5,color='k')
plt.xlabel("电影时长")
plt.ylabel("数据量")
plt.show()

五、饼图基础绘制

#导入模块
import matplotlib.pyplot as plt
import matplotlib#设置画布
plt.figure(figsize=(20, 8), dpi=100)#显示中文字体
matplotlib.rc('font',family='SimHei',size=14)#设置每个部分标签,扇形大小,颜色,扇形每个部分的突出值,
label = ["数学", "语文", "英语"]
size = [40, 60, 5]
color = ["r", "g", "b"]
explode = [0.05, 0.08, 0]
patches, l_text, p_text = plt.pie(size, explode=explode, colors=color,labels=label,   #设置扇形、标签、百分比标签实例labeldistance=1.2,    #标签文本距离圆心位置,1.2倍半径autopct="%1.2f%%",   #设置圆内文本数据格式shadow=True,    #是否带有阴影startangle=90,  #设置起始角度,默认从0开始逆时针旋转pctdistance=0.7)  #设置圆内文本距圆心距离plt.legend( loc='center left')
plt.axis("equal")
plt.show()

数据分析学习笔记—matplotlib折线图、条形图、直方图、饼状图基础绘制相关推荐

  1. python excel数据分析画直方图 饼状图_Excel数据可视化应用(直方图、折线图、饼状图)...

    直方图:对比关系 直方图是一种统计报告图,是表示资料变化情况的主要工具.直方图由一系列高度不等的的纵向条纹或线段表示数据分布的情况.一般用横轴表示数据类型,纵轴表示分布情况. 例1: 1.右键单击图表 ...

  2. Python 数据分析三剑客之 Matplotlib(七):饼状图的绘制

    CSDN 课程推荐:<Python 数据分析与挖掘>,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务.曾与联想.亨氏.网 ...

  3. python饼状图顺时针_Python:饼状图 (二十七)

    饼状图 饼状图是一种常见的单变量图形,用于描绘分类变量级别的相对频率.饼图中的频率用圆形的扇区表示:角度或面积越大,该分类值就越常见. 遗憾的是,饼状图是一种应用场合很有限的图形类型,图形创建者很容易 ...

  4. python饼状图颜色一样_python数据可视化:折线图、条形图、饼状图显示

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. matplotlib是Python的一个强大的2D图形绘制库,使用需要安装 ...

  5. python数据可视化:折线图、条形图、饼状图显示

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. matplotlib是Python的一个强大的2D图形绘制库,使用需要安装 ...

  6. 使用matplotlib绘制图形(条形图,饼状图,散点图,直方图)

    安装 pip install matplotlib 图形的基础绘制 from matplotlib import pyplot as plt# 设置图形大小,figure图形图像的意思,在这里指的是我 ...

  7. matplotlib(2)---柱状图, 直方图, 饼状图的绘制

    一. 柱状图 电影票房柱状图1 import matplotlib.pyplot as pltimport numpy as np # 设置matplotlib正常显示中文和负号matplotlib. ...

  8. pythonplt制作饼状图_4.5Python数据处理篇之Matplotlib系列(五)---plt.pie()饼状图

    目录 [TOC] 前言 饼状图需要导入的是: plt.pie(x, labels= ) (一)简单的饼状图 (1)说明: pyplot.``pie(x, explode=None, labels=No ...

  9. python饼状图颜色一样_使用echarts画饼状图,设置饼状图颜色

    前言: 前面已经跟大家分享了使用echarts画柱状图.折线图,一些之前自己遇到的坑也跟大家说了,这次就不再赘述.官方有配置文档,很详细,大家不懂的地方也可以交流. 今日分享重点:画饼状图. 1.引入 ...

最新文章

  1. 网络分析概述之网络基础简介
  2. JAVA的思维逻辑_[Java教程]计算机程序的思维逻辑
  3. Linux--Linux Shell 中的反引号,单引号,双引号
  4. vue devtools面板没有显示_vue 基础入门(四)
  5. 【转】什么是CT使用的水模、体模
  6. 【HDU5482】Numquam vincar,暴力(da biao)预处理+组合数
  7. python星空画法教程_教程 | 美轮美奂的星空画法
  8. Python3入门机器学习经典算法与应用 第3章 Numpy数组的合并与分割
  9. STM32合并烧录IAP+APP
  10. 【中级计量经济学】Lecture 9 面板数据模型
  11. 如何区分1位和4位数码管引脚图
  12. 从信息网络安全规则开始之——ISO27001
  13. 基于FFmpeg的iOS播放器(结构篇)
  14. VScode github配置及github代码管理
  15. 上市公司关于年报、半年报、季报及其公布时间的一些知识
  16. C#获取动态key的json对象的值
  17. 计算机考研408每日一题 day76
  18. 《区块链原理、设计与应用》 – 基于超级账本 Fabric 2.x(学习分享2.1-HyperLedger项目细分)
  19. 笨鸟的平凡之路-简单理解什么是_consumers_offsets
  20. 倒计时抢(数据分析)

热门文章

  1. 解决正在等待响应_解决一些等待问题
  2. ssis 列转换_SSIS组播转换概述
  3. as5 samba 图形配置
  4. Django进阶(CSRF、Ajax)
  5. 相关登录随机验证码公共函数
  6. 用MediaPlayer record audio简例
  7. springmvc5中设计模式
  8. 总结下SQLServer和Oracle转换的脚本
  9. flash as3笔记1
  10. VC/MFC 下 递归遍历目录下的所有子目录及文件