数据分析——matplotlib的用法

Matplotlib是一个强大的Python绘图和数据可视化的工具包。数据可视化也是我们数据分析的最重要的工作之一,可以帮助我们完成很多操作,例如:找出异常值、必要的一些数据转换等。完成数据分析的最终结果也许就是做一个可交互的数据可视化

安装方式: pip install matplotlib

引用方法:import matplotlib.pyplot as plt

一、plot函数(绘制折线图)

  • 线型linestyle(-,-.,--,..)
  • 点型marker(v,^,s,*,H,+,X,D,O,...)
  • 颜色color(b,g,r,y,k,w,...)

# 解决乱码问题(中文不显示)
plt.rcParams['font.sans-serif'] = ['SimHei']

x = [1,2,3]
y = [2,4,9]

plt.figure(figsize=(20,6))   #设置画布的大小

plt.title('标题', fontsize=20, color='red')  #设置标题
plt.xlabel('x轴', fontsize=15)  #设置x轴名称
plt.ylabel('y轴', fontsize=15)  #设置y轴名称

# plt.plot?
# plt.plot(x,y, color='green', marker='v', linestyle='--')
plt.plot(x, y)

plt.show()

 

 图像标注

方法描述 
plt.title() 设置图像标题  
plt.xlabel() 设置x轴名称  
plt.ylabel() 设置y轴名称  
plt.xlim() 设置x轴范围  
plt.ylim() 设置y轴范围  
plt.xticks() 设置x轴刻度  
plt.yticks() 设置y轴刻度  
plt.legend() 设置曲线图例
plt.plot([0,3,9,15,30],linestyle = '-.',color = 'r',marker = 'o',label="A") 
plt.plot([1,3,16,23,30],[30,23,13,25,30],label='B')
plt.title("Title")  # 标题
plt.xlabel('X')  # x轴名称
plt.ylabel('Y')  # y轴名称

plt.xticks(np.arange(0,30,2))  # x轴刻度
plt.xlim(-0.2,10,2)  # x轴范围
plt.legend()  # 曲线图标
plt.show()

 

 支持的图类型

函数说明 
plt.plot(x,y,fmt) 折线图  
plt.boxplot(data,notch,position) 箱型图  
plt.bar(left,height,width,bottom) 柱状图  
plt.barh(width,bottom,left,height) 横向柱状图  
plt.polar(theta,r) 极坐标系  
plt.pie(data,explode) 饼图  
plt.psd(x,NFFT=256,pad_to,Fs) 功率谱密度图  
plt.specgram(x,NFFT=256,pad_to,F) 谱图  
plt.cohere(x,y,NFFT=256,Fs) X-Y相关性函数  
plt.scatter(x,y) 散点图  
plt.step(x,y,where) 步阶图  
plt.hist(x,bins,normed) 直方图

二.柱状图

x = movies.index   #索引值
y = movies.values   #数据值

plt.figure(figsize=(15,6))   #设置画布大小
 
plt.bar(x, y, color='blue')   #柱状图用bar
plt.title('每个国家或者地区的电影数量')

plt.xlabel('国家或地区', fontsize=20)
plt.ylabel('电影数量', fontsize=20)
plt.xticks(rotation=90, fontsize=15)  #x轴数据旋转90度

# plt.text?
for a,b in zip(x,y):
    plt.text(a, b+100, b, ha='center')  #柱状图上面的文字

plt.show()

 

 三.饼图

饼图是计算某一范围内数据的百分比,那么先要切分统计每个范围内的数据百分比

先切分,使用cut

data = pd.cut(s.astype('float'), [0,60,90,110,1000]).value_counts()

使用pie做饼状图

x = data.index
y = data.values

plt.figure(figsize=(10,6))
plt.title('电影时长分布图')
patchs, l_text, p_text = plt.pie(y, labels=x, autopct='%0.2f%%', colors='bgry', startangle=90)

for i in p_text:
    i.set_size(15)
    i.set_color('w')  #饼状图内百分比样式设计

for l in l_text:    
    l.set_size(20)
    l.set_color('r')   #饼状图外范围设计
    
plt.show()

四.保存图表

plt.savefig('123.pdf')

 

 

posted @ 2019-12-04 21:23  只会玩辅助  阅读(856)  评论(0编辑  收藏  举报