IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> matplotlib学习笔记 -> 正文阅读

[Python知识库]matplotlib学习笔记

一.准备工作:

0.通过pip模组在命令行中下载

matplotlib,pandas,scipy等组件库

1.针对matplotlib库无法显示中文的问题

引用如下代码:

#-*- coding: utf-8 -*-
#python3默认utf-8解码
from pylab import
mpl.rcParams['font.sans-serif'] = ['SimHei']  #黑体
mpl.rcParams['axes.unicode_minus'] = False    #针对负号显示异常的问题

2.一些基本函数

1>.plot()

plt.plot(x, y, format_string, **kwargs)

? ? #架构函数

? ? #x(y):分别为x轴和y轴数据,可为元组或列表

? ? #format_string&&**kwargs:前者为控制曲线格式的字符串,后者代表其他的格式,

?eg:颜色,实、虚线,线宽、风格等

2.>.x(y)label

plt.x(y)label(x(y),fontproperties,fontsize,fontcolor)

? ? #对x、y轴添加文本标签,同时对字体进行设置

eg:plt.xlabel(amount,?fontproperties = ‘SimHei’, fontsize = 15, color = ‘green’)

3.>.title

plt.title()

? ? #对图形整体添加文本标签

4.>.annotate

plt. annotate(s, xy = arrow_crd, xytext = text_crd, arrowprops = dyi

? ? #在图形中添加带箭头的注释

? ? #s表示要注解的字符串是什么,xy对应箭头所在的位置,xytext对应文本所在位置,arrowprops定义显示的属性

5.>.grid

plt.grid(b, which, axis, color, linestyle, linewidth, **kwargs)

? ? #b是布尔值,表示是否显示网格线

? ? #axis取值为‘both’,‘x',’y'

? ? #color为网格线颜色,linestyle为网格线风格,linewidth为网格线宽度

6.>.x(y)tick

以xticks为例

plt.xticks(locs, [labels], **kwargs)

? ? #?locs参数为数组参数(array_like, optional),表示x-axis的刻度线显示标注的地方

7.>.figure

plt.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)

? ? #num:图像编号或名称,数字为编号 ,字符串为名称

? ? #figsize:指定figure的宽和高,单位为英寸

? ? #dpi参数指定绘图对象的分辨率

eg:fig=plt.figure(figsize=(4,3),facecolor='blue')

8.>.legend

plt.legend(handles,label,loc)

? ? #handles需要传入你所画线条的实例

? ? #label是图例的名称

? ? #loc代表了图例在整个坐标轴平面中的位置(一般选取'best'这个参数值)

二、图形绘制

0.折线图

  • 以某市温度变化为例

#主要代码:

import matplotlib.pyplot as plt
plt.figure(figsize=(20, 10), dpi=80)
day=['7.1','7.2','7.3','7.4','7.5','7.6','7.7']
ndegrees=[20,17,18,20,16,18,20]
mdegrees=[35,32,31,30,27,32,30]
line1,=plt.plot(day, mdegrees, c='red')
plt.scatter(day, mdegrees, c='red')
line2,=plt.plot(day, ndegrees, c='blue')
plt.scatter(day, ndegrees, c='blue')
plt.yticks=(range(10, 40, 4))
#利用range函数确定刻度分度值
plt.grid(True, linestyle='--', alpha=0.5)
plt.xlabel("日期", fontdict={'size': 16})
plt.ylabel("温度", fontdict={'size': 16})
#添加文本标签
plt.title("2021年7月份第一周某市气温变化", fontdict={'size': 20})
plt.legend(handles=[line1,line2],labels=['最高温度','最低温度'],loc='best')
#自定义图例
plt.show()

!注:

0.plt.scatter(x, y)函数 可以绘制散点图,在折线图中使用可以更清晰的看到每个点的情况,方便比较

1.plt.lengend函数中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'
?

#样例测试结果:

?1.直方图

?#实现函数:

hist( x, bins=None, range=None, normed=False, # 重要

orientation='vertical', color=None, edgecolor=None, label=None, # 常用?? ?

density=False, weights=None, cumulative=False, bottom=None, histtype='bar',

align='mid', rwidth=None, # 选用

1.>x:元组,用来存放数据

2.>bins:整数,序列或者字符串,整数表示条形个数,序列表示区间范围

3.>range:元组,指定最大最小值

4.>density:布尔值,如果为True,则返回归一化概率密度

5.>rwidth:设置条形图的宽度

6.>color:直方图填充色

7.>label:设置直方图标签

8.>orientation:设置直方图方向

  • 以生成一个随机的连续数据为例

#主要代码:

import numpy as np
#引入numpy库进行数学处理
import matplotlib.pyplot as plt
x = np.random.randint(1,500,2000)
#产生2000个1~500的随机数
bins=[0,50,100,150,200,250,300,350,400,450,500]
plt.hist(x,color='r',rwidth=0.6)
#hist()函数自定义构造直方图
plt.xticks(bins)
#自定义横轴
plt.xlabel('区间')
plt.ylabel('频数')
plt.title('频数直方图')
plt.show()

#样例测试结果:

?2.饼图

#实现函数:

pie(x, explode=None, labels=None, colors=None, autopct=None,

pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=None,

radius=None, counterclock=True, wedgeprops=None, textprops=None,

center=(0, 0), frame=False, rotatelabels=False, hold=None, data=None)
???

1.>x:每块占图形的比例

2.>labels:每块饼图的外显文字注释

3.>explode:每块离开中心位置的距离

4.>startangle:绘制起始角度,默认为x轴正方向,逆时针绘图

5.>shadow:在饼图下方添加阴影

6.>labeldistance:label相对于饼图的位置,默认值为1.1

7.>radius:饼图半径,默认为1

8.>autopct:控制饼图百分比设置,可用format函数

9.>pctdistance:autopct相对于饼图的位置,默认为0.64

  • 以某大学大一学生生活费品均值为例

#主要代码:

import matplotlib.pyplot as plt
costs=[0.1,0.2,0.36,0.23,0.04,0.07]
Range=['低于500','500~1000','1000~1500','1500~2000','2000~2500','高于2500']
Explode=[0,0,0.1,0,0,0]
#突出显示生活费位于1000-1500的学生占比
plt.pie(x=costs,explode=Explode,labels=Range,
        autopct='%.1f%%',#设置百分数格式
        shadow=True,#添加阴影
        radius=1.4)
plt.axis('equal')
#饼图形状为一个正圆       
plt.title('大一学生每月生活费情况统计')
plt.legend(title='支出分布')
#设置图例
plt.show()

#样例测试结果:

3.箱型图

?#什么是箱型图:

#实现函数:

boxplot(x, norch=None, showfliers=None, patch_artist=None, labels)

1.>x: 绘制所需数据

2.>norch: 是否用凹口形式展现箱型图

3.>showfliers: 是否显示异常值

4.>patch_artist: 是否填充箱体的颜色

5.>labels: 添加标签

  • 实例

#主要代码:

import numpy
import matplotlib.pyplot as plt
y1 = np.random.randn(100)
y2= np.random.random(100)
y3 = np.random.randint(1,5,100)
#random函数生成随机数
plt.boxplot((y1,y2,y3),labels=['a','b','c'])
plt.title('箱型图')
plt.show()

#样例测试结果:

?4.雷达图

#构造方法:

1.>作一个极坐标系并添加数据点

plt.polar(theta, r, **kwargs)

? ? #theta:极角, r: 极径

? ? #用列表存放数据

plt.ylim()

? ?#设置极轴上下限

eg: plt.polar(0.25*np.pi,20,'ro',lw=2)

? ? #r表示红色,o是圆点? lw宽度为2

2.>连线并使其封闭

#将polar函数中’ro‘改为’ro-‘

#concatenate()函数使其封闭

3.>填色

fill(*args, data=None, **kwargs)

? ? #*args:确定填色区域

? ? #data: 数据对象,可添加标签

  • 实例

#测试样例结果:

?三、问题补充

#添加标注

1.>无指向性标注

plt.text(x, y, s, fontdict = None, **kwargs)
    #x, y 为标注文本在绘图区域中的位置;
    #s为标注文本的内容;
    #fontdict 为文本属性的字典,默认为文本属性

2.>指向性标注

plt.annotate(s, xy, *args, **kwargs)
    #s 为标注文本的内容;
    #xy 为标注箭头的开始坐标 (x, y);
    #*args 为 xytext = (x, y) 标注文本的坐标;
  • 以两地气温变化趋势为例

#测试样例结果

?

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-02 10:46:25  更:2021-08-02 10:46:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 8:49:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码