pyhtonmatplotlib可视化图像基础(⼆维函数图、柱状图、饼
图、直⽅图以及折线图)...
//2019.07.22
pyhton中matplotlib模块的应⽤
pyhton中matplotlib是可视化图像库的第三⽅库,它可以实现图像的可视化,输出不同形式的图形
1、可视化图形的输出和展⽰需要调⽤matplotlib第三⽅库的函数plt.show(),它的功能类似于print,相当于打印出⾃⼰需要输出的可视化图像,当然也可以⽤⼀些特殊的输出语句如下:
%book
%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) #设置坐标轴上数字党的⼤⼩尺⼨
matplotlib中icks(rotation=90) #设置x坐标轴的标注进⾏90度的旋转(展⽰效果会更加好)
for a,b in zip(x,y):
<(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、对于函数图像中添加任何标注信息需要⽤到函数(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]):
<(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")) #对图像中任何⼀点进⾏箭头专门强调式的标注相所需要设置的函数
<(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.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):
p(-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(s(2*np.pi*t2),"r--")
#输出其他⼀些的可视化常⽤图形(柱状图、饼图、直⽅图等)
import warnings
warnings.filterwarnings("ignore")#对警告的信息进⾏忽略
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
#导⼊我们所需要的各⾃第三⽅库
ad_excel("D:/Byrbt2018/Study/Python数据分析课程+练习+讲解/Python数据分析课程+练习+讲解/作业/作业4/作业4/酒店数据1.xlsx")#导⼊w我们的表格数据⽂件
print(df)
print(df.index)
lumns)
#绘制柱状图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)            #设置坐标轴上数字党的⼤⼩尺⼨
for a,b in zip(x,y):
<(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]):
<(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")) #对图像中任何⼀点进⾏箭头专门强调式的标注相所需要设置的函数
<(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()  #输出相应的⼆维图像

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。