一、Matplotlib是什么?
? ? ? Matplotlib 是 Python 的绘图库,它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。Matplotlib 可以用来绘制各种静态,动态,交互式的图表。与numpy、pandas共享数据科学三剑客的美誉,也是很多高级可视化库的基础
二、Matplotlib的优点
- 使用简单的绘图语句实现复杂的绘图效果
- 能将数据进行可视化,更直观的呈现
- 使数据更加客观、更具说服力
三、安装Matplotlib
# 安装
? ? pip install matplotlib----terminal 或cmd 输入命令安装
#pycharm推荐使用
? ? settings--interpreter---右侧的+---matplotlib---install package ? ?
四、导入?Matplotlib
# 导入模块
? ? import matplotlib.pyplot as plt
五、折线图
matplotlib模块中plot函数语法及参数含义:
plt.plot(x,y,linestyle, linewidth,color,marker, markersize,markeredgecolor,
markerfacecolor,label,alpha)
- x:指定折线图的x轴数据;
- y:指定折线图的y轴数据;
- linestyle:指定折线的类型,可以是实线、虚线、点虚线、点点线等,默认文实线;
- linewidth:指定折线的宽度
- marker:可以为折线图添加点,该参数是设置点的形状;
- markersize:设置点的大小;
- markeredgecolor:设置点的边框色;
- markerfacecolor:设置点的填充色;
- label:为折线图添加标签,类似于图例的作用;
- alpha: 透明度
?六、图形结构
七、简单折线图?
#matplotlib=>>matrix+plot+library缩写
# matplotlib很多高级可视化库的基础
#导入可视化模块
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
#数据
x=[i for i in range(1,11)]
y=[1,2,4,8,20,11,8,4,15,3]
#画图
plt.plot(x,y)
#显示图片(pycharm必须写)
plt.show()
?
八、设置折线
- ?颜色和形状
- ?折点设置
- ?轴标签和标题
- ?轴刻度
- ?显示中文
- ?同图多线
- ?保存图片
8.1 最常用的颜色有以下8种,其字母表示、缩写及图例如下:
常用的线条类型:
?
?
?
?8.2点的形状
?
8.3 绘制轴标签
? ? ? x轴标签 plt.xlabel(str_x)
? ? ? y轴标签 plt.ylabel(str_y)?
? ? ?标题(默认显示在图形上方)? plt.title(str_title)
?
8.4? ?轴刻度 ???
matplotlib.pyplot.xticks(ticks=None, labels=None, **kwargs)
参数说明:
????????ticks: 数组类型,用于设置x轴刻度间隔
????????labels:数组类型,用于设置每个间隔的显示标签
????????**kwargs:用于设置标签倾斜度和颜色等外观属性。
#设置画布大小
plt.figure(figsize=(20,8),dpi=80)
#设置刻度
# plt.xticks(x)
# plt.yticks(range(min(y),max(y)+1))
#设置x轴刻度标签
#循环对每一个x值构造x轴刻度标签
xticks_label=[f'{i}:00' for i in x]
#rotation旋转45度
plt.xticks(x,xticks_label,rotation=45)
#设置y轴刻度标签
yticks_label=[f'{i}:℃' for i in range(min(y),max(y)+1)]
plt.yticks(range(min(y),max(y)+1),yticks_label)
#绘制图
plt.plot(x,y)
?
8.5 显示中文
(1)? 设置显示黑体
? ? ? ? ? plt.rcParams['font.sans-serif']='SimHei'
(2)? 局部设置 fontproperties ?
? ? ? ? ? ? ---在轴标签里设置字体及字体大小
? ? ? ? ? ?plt.xticks(x,xticks_label,fontproperties='SimSun',fontsize=20)
#显示中文######
#方法一:rcParams全局设置,对全局有效
#设置显示为黑体
plt.rcParams['font.sans-serif']='SimHei'
#显示负号,系统本身不支持负号
plt.rcParams['axes.unicode_minus']=False
#设置字体大小
plt.rcParams['font.size']=20
??
8.6 同图多线
import matplotlib.pyplot as plt
import random
#数据
x=range(18,30)
y1=[random.randint(0,9) for i in x]
y2=[random.randint(5,14) for i in x]
y3=[random.randint(6,15) for i in x]
#画布
plt.figure(figsize=(20,10),dpi=80)
#绘制图
plt.plot(x,y1,'r',label='张三')
plt.plot(x,y2,'g',label='王五')
plt.plot(x,y3,'b',label='菲菲')
##设置x轴的刻度标签
xticks_label=[f'{i}岁' for i in x]
plt.xticks(x,xticks_label,fontproperties='SimSun',fontsize=20)
#设置背景网格及透明度
plt.grid(alpha=.4)
#显示图例
plt.legend(prop={'family':'SimSun','size':16})
#设置标题
plt.title('历年交友数量',fontproperties='SimSun',size=30)
plt.show()
8.7 网格线
matplotlib.pyplot.grid(b=None, which='major', axis='both', )
参数说明:
- b:可选,默认为 None,可以设置布尔值,true 为显示网格线,false 为不显示,如果设置 **kwargs 参数,则值为 true。
- which:可选,可选值有 'major'、'minor' 和 'both',默认为 'major',表示应用更改的网格线。
- axis:可选,设置显示哪个方向的网格线,可以是取 'both'(默认),'x' 或 'y',分别表示两个方向,x 轴方向或 y 轴方向。
- **kwargs:可选,设置网格样式,可以是 color='r', linestyle='-' 和 linewidth=2,分别表示网格线的颜色,样式和宽度。
plt.grid(color = 'r', linestyle = '--', linewidth = 0.5)
8.8 保存图片
? ? savefig(fname,dpi=None,facecolor=“w”,edgecolor=“w”,orientation=“portrait”,papertype=None,format=None,transparent=False,bbox_inches=None,pad_inches=0.1,frameon=None,metadata=None)
plt.savefig(r"C:\Users\Desktop\pandas\you.png")
?
?
|