//2019.07.22
pyhton中matplotlib模块的应用
pyhton中matplotlib是可视化图像库的第三方库,它可以实现图像的可视化,输出不同形式的图形
1、可视化图形的输出和展示需要调用matplotlib第三方库的函数plt.show(),它的功能类似于print,相当于打印出自己需要输出的可视化图像,当然也可以用一些特殊的输出语句如下:
%matplotlib.notebook
%matplotlib.inline
2、对于一般的二维图像输出可以用函数plt.plot(x,y)来进行输出,另外如果想要修改函数输出图像的一些细节格式,则含有以下几种方式:
#对于线条属性的定义
plt.figure(3)
x=np.linspace(-np.pi,np.pi)
y=np.sin(x)
plt.plot(x,y,linewidth=4.0,color="r")
#使用pot.plot()函数来设置线条属性
plt.figure(4)
line1,line2=plt.plot(x,y,"r",x,y+1,"g") #输出两个函数图像
line1.set_antialiased(False) #对于线条属性进行后续的定义(抗锯齿形输出关闭)
#使用plt.setp()进行设置
plt.figure(5)
line=plt.plot(x,y)
plt.setp(line,color="g",linewidth=4.0)
plt.setp(line,"color","r","linewidth",4)
3、多个函数图像的子图的输出函数一般使用函数plt.subplot(x,y,z)这样来进行多个函数图像的输出,其中x,y代表的是整个函数图像是一个x行y列的图像集合,z代表你所要目前索要输出函数图像的顺序和位置。
4、对于柱状图的输出主要用到的函数是plt.bar(x,y)函数,其中x,y是指两个相关的变量取值,对于输出柱状图的图像细节设置和修改主要包含以下几个方面:
data=pd.value_counts(df["类型"])
print(data)
x=data.index #定义柱状图的x/y轴参数取值
y=data.values
plt.figure()
plt.title("不同类型酒店的数量",fontsize=20) #设置标题的名称和标题的字体大小
plt.xlabel("类型",fontsize=15) #设置x/y轴的名称个字体的大小
plt.ylabel("数量",fontsize=15)
plt.bar(x,y,color="r")#输出x/y两个变量的柱状图图像需要用函数plt.bar(x,y)
plt.tick_params(labelsize=10) #设置坐标轴上数字党的大小尺寸
plt.xticks(rotation=90) #设置x坐标轴的标注进行90度的旋转(展示效果会更加好)
for a,b in zip(x,y):
plt.text(a,b+5,b,ha="center",va="bottom",fontsize=10)
#设置柱状图的标注文字形式,ha是指文字的对其方式,va是指柱状图横线在文字的相对位置
5、对于任何形式的函数图像,如果想要对其中的某一点进行箭头的专门强调标注,需要用到函数:
plt.annotate("评分4.5达到最大值",xy=(4.5,y2[4.5]),xytext=(3.5,55),arrowprops=dict(facecolor="red",edgecolor="green"))
#对图像中任何一点进行箭头专门强调式的标注相所需要设置的函数
其中xy代表的是需要标注强调的点的位置和坐标
xytext表示的是强调标注文字开始的位置
arrowprops代表的是对于所标注箭头格式的设置
6、对于函数图像中添加任何标注信息需要用到函数plt.text(x,y,z)函数,其中x,y代表的是标注的位置,z表示的是标注的信息
7、对于折线图的绘制就用一般的plt.plot(x,y)函数即可进行相应的输出,其中很多函数图像的细节设置主要包含以下几个方面(举例来讲):
#折线图的绘制
plt.figure()
x1=df["评分"]
print(x1)
y1=df["评分"].value_counts()
y2=y1.sort_index()
print(y2)
x=y2.index
y=y2.values
plt.plot(x,y,"g")
plt.xlabel("评分大小")
plt.ylabel("数量")
plt.title("评分相同的酒店数量")
for a,b in zip(x[::10],y[::10]):
plt.text(a,b+3,b) #每隔10个点进行输出
plt.annotate("评分4.5达到最大值",xy=(4.5,y2[4.5]),xytext=(3.5,55),arrowprops=dict(facecolor="red",edgecolor="green"))
#对图像中任何一点进行箭头专门强调式的标注相所需要设置的函数
plt.text(2.0,40,"随着评分的增加,其酒店数量也在增加") #在图像中添加任何一个标注信息使用的函数及其参数设置
8、饼图的绘制:
#饼图的绘制plt.pie()
data=pd.cut(df["评分"],[0,3,4.3,4.6,4.8,5.0]).value_counts()
print(data)
y1=data.values
print(y1)
y=y1/sum(y1)
plt.figure(figsize=(7,7))
plt.title("酒店评分占比")
#plt.pie(y1,labels=data.index,autopct="%.1f%%",colors="bygrk") #绘制饼图的函数设置
plt.legend() #显示饼图图像的图例
patches,l_text,p_text=plt.pie(y1,labels=data.index,autopct="%.1f%%",colors="bygrk") #绘制饼图的格式设置
for i in p_text:
i.set_size(15)
i.set_color("w")
for i in l_text:
i.set_size(15)
i.set_color("r") #对饼图内外文字字体的格式进行相应的设置


9、直方图的绘制:
#绘制频率分布直方图plt.hist()
plt.figure(figsize=(10,6))
plt.hist(df["评分"],bins=20,facecolor="r",edgecolor="k",alpha=0.9,histtype="bar")
#直方图胡输出函数参数设置

整体运行代码如下:

   #导入相应的matplotlib模块及其他常用的可视乎图像常用的模块

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"]=["SimHei"] #输出图像的标题可以为中文正常输出
plt.rcParams["axes.unicode_minus"]=False #可以正常输出图线里的负号
plt.figure(1)
plt.plot([0,1,2,3],[1,2,3,4],label="二维折线原图")
plt.ylabel("y") #设置纵轴的名称
plt.xlabel("x")
plt.title("函数图像输出") #设置函数的标题
plt.figure(2)
plt.plot([1,2,3,4],[1,4,9,16],"r-",label="一次函数图像") #输出函数图像
#plt.axis([0,10,0,20]) #设置坐标轴的显示范围
plt.legend(loc=1) #设置函数图像曲线标注的位置
print(np.arange(0,5,0.2))
t=np.arange(0,5,0.2)
plt.plot(t,t,"r--",t,t**2,"b*",t,t**3,"g^") #在同一个plot函数(同一个图像当中)当中输入三条函数图像
#对于线条属性的定义
plt.figure(3)
x=np.linspace(-np.pi,np.pi)
y=np.sin(x)
plt.plot(x,y,linewidth=4.0,color="r")
#使用pot.plot()函数来设置线条属性
plt.figure(4)
line1,line2=plt.plot(x,y,"r",x,y+1,"g") #输出两个函数图像
line1.set_antialiased(False) #对于线条属性进行后续的定义(抗锯齿形输出关闭)
#使用plt.setp()进行设置
plt.figure(5)
line=plt.plot(x,y)
plt.setp(line,color="g",linewidth=4.0)
plt.setp(line,"color","r","linewidth",4)
#子图的输出函数
#plt.subplot(numrows,numcols,fignum)
def f(t):
return np.exp(-t)*np.cos(2*np.pi*t)
t1=np.arange(0,5,0.1)
t2=np.arange(0,5,0.02)
plt.figure(figsize=(10,6)) #输出一个新的函数图像尺寸大小为10x6
plt.subplot(211) #子图1
plt.plot(t1,f(t1),"bo",t2,f(t2),"k")
plt.subplot(212) #子图2
plt.plot(t2,np.cos(2*np.pi*t2),"r--") #输出其他一些的可视化常用图形(柱状图、饼图、直方图等)
import warnings
warnings.filterwarnings("ignore")#对警告的信息进行忽略
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"]=["SimHei"] #输出图像的标题可以为中文正常输出
plt.rcParams["axes.unicode_minus"]=False #可以正常输出图线里的负号
#导入我们所需要的各自第三方库
df=pd.read_excel("D:/Byrbt2018/Study/Python数据分析课程+练习+讲解/Python数据分析课程+练习+讲解/作业/作业4/作业4/酒店数据1.xlsx")#导入w我们的表格数据文件
print(df)
print(df.index)
print(df.columns) #绘制柱状图plt.bar()
data=pd.value_counts(df["类型"])
print(data)
x=data.index #定义柱状图的x/y轴参数取值
y=data.values
plt.figure()
plt.title("不同类型酒店的数量",fontsize=20) #设置标题的名称和标题的字体大小
plt.xlabel("类型",fontsize=15) #设置x/y轴的名称个字体的大小
plt.ylabel("数量",fontsize=15)
plt.bar(x,y,color="r") #输出x/y两个变量的柱状图图像需要用函数plt.bar(x,y)
plt.tick_params(labelsize=10) #设置坐标轴上数字党的大小尺寸
plt.xticks(rotation=90) #设置x坐标轴的标注进行90度的旋转(展示效果会更加好)
for a,b in zip(x,y):
plt.text(a,b+5,b,ha="center",va="bottom",fontsize=10)
#设置柱状图的标注文字形式,ha是指文字的对其方式,va是指柱状图横线在文字的相对位置 #折线图的绘制
plt.figure()
x1=df["评分"]
print(x1)
y1=df["评分"].value_counts()
y2=y1.sort_index()
print(y2)
x=y2.index
y=y2.values
plt.plot(x,y,"g")
plt.xlabel("评分大小")
plt.ylabel("数量")
plt.title("评分相同的酒店数量")
for a,b in zip(x[::10],y[::10]):
plt.text(a,b+3,b) #每隔10个点进行输出
plt.annotate("评分4.5达到最大值",xy=(4.5,y2[4.5]),xytext=(3.5,55),arrowprops=dict(facecolor="red",edgecolor="green"))
#对图像中任何一点进行箭头专门强调式的标注相所需要设置的函数
plt.text(2.0,40,"随着评分的增加,其酒店数量也在增加") #在图像中添加任何一个标注信息使用的函数及其参数设置 #饼图的绘制plt.pie()
data=pd.cut(df["评分"],[0,3,4.3,4.6,4.8,5.0]).value_counts()
print(data)
y1=data.values
print(y1)
y=y1/sum(y1)
plt.figure(figsize=(7,7))
plt.title("酒店评分占比")
#plt.pie(y1,labels=data.index,autopct="%.1f%%",colors="bygrk") #绘制饼图的函数设置
plt.legend() #显示饼图图像的图例
patches,l_text,p_text=plt.pie(y1,labels=data.index,autopct="%.1f%%",colors="bygrk") #绘制饼图的格式设置
for i in p_text:
i.set_size(15)
i.set_color("w")
for i in l_text:
i.set_size(15)
i.set_color("r") #对饼图内外文字字体的格式进行相应的设置 #绘制频率分布直方图plt.hist()
plt.figure(figsize=(10,6))
plt.hist(df["评分"],bins=20,facecolor="r",edgecolor="k",alpha=0.9,histtype="bar")
#直方图胡输出函数参数设置
plt.show() #输出相应的二维图像

												

pyhton matplotlib可视化图像基础(二维函数图、柱状图、饼图、直方图以及折线图)的更多相关文章

  1. 利用pandas读取Excel表格,用matplotlib.pyplot绘制直方图、折线图、饼图

    利用pandas读取Excel表格,用matplotlib.pyplot绘制直方图.折线图.饼图 数据: 折线图代码: import  pandas  as pdimport  matplotlib. ...

  2. C# WinForm开发系列之c# 通过.net自带的chart控件绘制饼图,柱形图和折线图的基础使用和扩展

    一.需要实现的目标是: 1.将数据绑定到pie的后台数据中,自动生成饼图. 2.生成的饼图有详细文字的说明. 1.设置chart1的属性Legends中默认的Legend1的Enable为false: ...

  3. MATLAB—二维函数可视化

    本文主要总结一下MATLAB的一些常用二维绘图指令. 文章目录 一.plot绘图指令 1.离散数据点形设置值 2.连续线型设置值 3.颜色设置值 4.常用属性和属性值 5.例题 二.subplot绘图 ...

  4. 图像处理之基础---二维卷积c实现

    http://wenku.baidu.com/link?url=4RzdmvP9sdaaUbnVEW4OyBD-g67wIOiJjKFF3Le_bu7hIiBS7I6hMcDmCXrQwsHvrsPv ...

  5. C语言基础--二维数组

    二维数组概念: 数组中的每一个元素又是一个数组, 那么这个数组就称之为二维数组,二维数组是特殊的一维数组. 二维数组格式: 元素类型 数组名称[一维数组的个数][每个一维数组的元素个数]; 元素类型 ...

  6. 数据可视化基础专题(十一):Matplotlib 基础(三)常用图表(一)折线图、散点图、柱状图

    1 折线图 折线图主要用于表现随着时间的推移而产生的某种趋势. cat = ["bored", "happy", "bored", &quo ...

  7. Java基础--二维数组

    1.二维数组的定义 二维数组表示行列二维结构,在栈空间中的二维数组的地址指向堆空间中的一维数组,堆空间中的一维数组的地址又指向一维数组所在的内存空间. 2.二维数组的声明 二维数组声明有3种方式,推荐 ...

  8. C语言基础:二维数组 分类: iOS学习 c语言基础 2015-06-10 21:42 16人阅读 评论(0) 收藏

    二维数组和一位数组类似. 定义: 数据类型 数组名[行][列]={{ },{ }....}; 定义时,一维(行)的长度可以省略,但是二维(列)的长度不可以省略.但是访问时,一定使用双下标. 二维数组的 ...

  9. C Program基础-二维数组

    一维数组可以看作一行连续的数据,只有一个下标.C语言允许构造二维数组甚至多维数组,在实际问题中有时候常常需要用到二维数组(例如数学上的矩阵),二维数组有两个下标,以确定某个元素在数组中的位置. (一) ...

随机推荐

  1. 第4课.编写通用的Makefile

    1.框架 1. 顶层目录的Makefile 2. 顶层目录的Makefile.build 3. 各级子目录的Makefile 2.概述 1.各级子目录的Makefile: 它最简单,形式如下: obj ...

  2. ash.jpg

  3. 「Luogu P5494 【模板】线段树分裂」

    (因为没有认证,所以这道题就由Froggy上传) 线段树分裂用到的地方确实并不多,luogu上以前也没有这道模板题,所以就出了一道,实在是想不出怎么出模板了,所以这道题可能可以用一些其他的算法水过去. ...

  4. Linux centosVMware Apache 配置防盗链、访问控制Directory、访问控制FilesMatch

    一.配置防盗链 通过限制referer来实现防盗链的功能 配置文件增加如下内容 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //改为如下 ...

  5. Vue源码(上篇)

    某课网有个488人名币的源码解读视频看不起,只能搜很多得资料慢慢理解,看源码能知道大佬的功能模块是怎么分块写的,怎么复用的,已经vue是怎么实现的 资料来自 vue源码 喜欢唱歌的小狮子 web喵喵喵 ...

  6. 那些年我们踩过的坑,SQL 中的空值陷阱!

    文章目录 NULL 即是空 三值逻辑 空值比较 NOT IN 与空值 函数与空值 DISTINCT.GROUP BY.UNION 与空值 ORDER BY 与空值 空值处理函数 字段约束与空值 SQL ...

  7. iOS沙盒目录简介、沙盒路径获取

    一.沙盒的意义 出于安全的考虑,iOS系统的沙盒机制规定每个应用只能访问当前沙盒目录下面的文件.但是对于一些用户级别的数据,考虑到很多软件都需要使用其中的数据,用户可以通过对当前的软件授权,让当前的应 ...

  8. 集合set 1

    集合只能通过set() 函数进行创建    无序,不重复   每个元素必须是可哈希的,不可变类型(不可变数据类型在第一次声明赋值声明的时候, 会在内存中开辟一块空间, 用来存放这个变量被赋的值,  而 ...

  9. 《Java周边》IDEA 创建Gradle子项目

    1. 创建Gradle项目 新建项目选择左侧gradle,右侧选择自己jdk版本,勾选java项目,点击Next 写上GroupId组名ArtifactId项目名后点击Next 这里选择使用本地gra ...

  10. 学习SpringBoot零碎记录——配置应用URL名称

    学习SpringBoot配置应用名称,结果发现坑 到网上找 到 https://blog.csdn.net/qq_40087415/article/details/82497668 server: p ...