博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 机器学习三剑客 之 Matplotlib
阅读量:4624 次
发布时间:2019-06-09

本文共 4000 字,大约阅读时间需要 13 分钟。

Matplotlib介绍:
    Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形 。
    通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。
Matplotlib基础知识:   
     Matplotlib中的基本图表包括的元素
     x轴和y轴
     水平和垂直的轴线
     x轴和y轴刻度
     刻度标示坐标轴的分隔,包括最小刻度和最大刻度
     x轴和y轴刻度标签
     表示特定坐标轴的值
     绘图区域
     实际绘图的区域
 

Matplotlib形状代码:首选是折线图: # 导包import matplotlib.pyplot as plt# 导入字体库from matplotlib.font_manager import FontPropertiesfont = FontProperties(fname="C:/Windows/Fonts/simkai.ttf",size=15)# 填充数据# plt.plot(['3-1','3-2','3-3'],[1,10,9])# 绘制方法# plt.show()# 定制数据x1 = ['3-1','3-2','3-3','3-4','3-5']y1 = [2,6,4,9,7]x2 = ['3-1','3-2','3-3','3-4','3-5']y2 = [13,18,11,12,5]plt.plot(x1,y1,label='temperature')plt.plot(x2,y2,label='water')# 设置标题plt.title('温湿度显示图',FontProperties=font)plt.legend()plt.show() 树状图: # 导包import matplotlib.pyplot as plt# 导入字体库from matplotlib.font_manager import FontPropertiesfont = FontProperties(fname="C:/Windows/Fonts/simhei.ttf",size=15)# 设置数据salary = [9000,10000,12000,5000,4000]group = ['beijing','qinhuangdao','xingtai','handan','shijiazhuang']plt.bar(group,salary)plt.title('全国各市工资水平',FontProperties=font)plt.show() 散点图: # 导包import matplotlib.pyplot as plt# 导入字体库from matplotlib.font_manager import FontPropertiesimport numpy as npfont = FontProperties(fname="C:/Windows/Fonts/simhei.ttf",size=15)# 设置数据# plt.scatter(2,4)# 定义x轴数据x = list(range(0,101))y = [xvalue * np.random.rand() for xvalue in x]# 填充数据# s 代表点的大小,和粗细# c 点表点的颜色plt.scatter(x,y,s=20,c='skyblue')# 绘制plt.show() 还可以运用面向对象来吧 图形封装成类,以下是封装成面向对象的图形代码。# 导包import matplotlib.pyplot as plt# 定义一个绘图类class TestPlot(object):# 初始化赋值def __init__(self,plt):self.plt = plt#定义内部属性#解决中文乱码问题(第二种,第一种在d6中)# 'font.sans-serif' 是matplotlib的内置keyplt.rcParams['font.sans-serif'] = ['SimHei']plt.rcParams['font.family']='sans-serif'#指定编码plt.rcParams['axes.unicode_minus'] = False# 定义横向条形图def my_barh(self):my_plt = self.plt# 定义价格price = [40.7,55,66,42.3]# 将数据传入my_plt.barh(range(4),price,align='center',color='skyblue',alpha=0.5)# 设置标签my_plt.xlabel('价格')# 将数据传入y轴my_plt.yticks(range(4),['红楼梦','三国演义','西游记','水浒传'])# 设置上下限制my_plt.xlim([10,80])my_plt.title('四大名著')my_plt.show()# 定义柱状图def my_bar(self):my_plt =self.plt# 定义数据GDP = [11313.3,14131.3,14553.5,23452.6]# 传入数据my_plt.bar(['唐山','邢台','石家庄','邯郸'],GDP,align='center',color ='steelblue',alpha = 0.8)my_plt.ylabel('生产总值')my_plt.title('河北省GDP大比拼')# 刻度范围my_plt.ylim([5000,25000])my_plt.show()def my_pie(self):my_plt = self.plt # 定义数据xingtai = [44,22,16,18]# 定义标签label = ['2-3年','3-4年','5-6年','6年以上']color = ['red','skyblue','yellow','pink']indic = []# 使用enumerate方法来添加索引 for index,item in enumerate(xingtai):if item == max(xingtai):indic.append(0.5) elif index == 1:indic.append(0.3)else:indic.append(0) # if item == max(xingtai):# indic.append(0.1)# else:# indic.append(0)my_plt.pie(# 数据xingtai,# 标签labels=label,# 颜色colors=color,# 角度startangle=90,# 阴影shadow=True,# 突出显示explode=tuple(indic),# 格式化数字autopct='%1.1f%%',)# 设置标题my_plt.title('饼图示例-统计邢台工龄占比')my_plt.show()# 定义面积图方法def my_area(self):# 定义日期区间date = ['2019.3.1','2019.3.2','2019.3.3','2019.3.4','2019.3.5','2019.3.6']# 定义数据# 收入earn = [313,344,222,111,414,212] # 支出pay = [[15,44,33,56,33,77],[33,22,11,13,42,19]]self.plt.stackplot(date,earn,pay,colors=['skyblue','yellow','red'])# 生成图例self.plt.plot([],[],color='skyblue',label='收入')self.plt.plot([],[],color='yellow',label='午餐')self.plt.plot([],[],color='red',label='晚餐')# 设置标题self.plt.title('面积图例,统一六天收入')self.plt.legend()self.plt.show()if __name__ == "__main__":# 实例化一个对象testplot =TestPlot(plt)testplot.my_area()# testplot.my_bar()# testplot.my_pie()# testplot.my_barh() 以上全都是内置图形 ,还可以有扩展别的图形,例如小提琴图形。首选要下载一个 seaborn 包下载方式:pip install seaborn下载之后利用此代码,就可以生成小提琴形状的比例了。# 导包import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsif __name__ == "__main__": # 读取数据集df = pd.read_excel('test.xlsx','sheet1')print(df)# 绘制小提琴图sns.violinplot(df['Age'],df['Gender'])# 初始化数据sns.despine()# 绘制plt.show()

 

转载于:https://www.cnblogs.com/junjun511/p/10643790.html

你可能感兴趣的文章
C语言学习笔记--字符串
查看>>
关于七牛进行图片添加文字水印操作小计
查看>>
DataSource数据库的使用
查看>>
Luogu4069 SDOI2016 游戏 树链剖分、李超线段树
查看>>
Java的内部类真的那么难以理解?
查看>>
一文搞懂Java环境,轻松实现Hello World!
查看>>
hash实现锚点平滑滚动定位
查看>>
也谈智能手机游戏开发中的分辨率自适应问题
查看>>
关于 IOS 发布的点点滴滴记录(一)
查看>>
《EMCAScript6入门》读书笔记——14.Promise对象
查看>>
CSS——水平/垂直居中
查看>>
Eclipse连接mysql数据库jdbc下载(图文)
查看>>
Python中Selenium的使用方法
查看>>
三月23日测试Fiddler
查看>>
20171013_数据库新环境后期操作
查看>>
SpringMVC中文件的上传(上传到服务器)和下载问题(二)--------下载
查看>>
Socket & TCP &HTTP
查看>>
osip及eXosip的编译方法
查看>>
Hibernate composite key
查看>>
[CF Round #294 div2] D. A and B and Interesting Substrings 【Map】
查看>>