Python数据可视化绘图工具matplotlib浅试

RGB颜色查询表

数据可视化

matplotlib模块的使用

1、柱形图

  1、应用场景:

    定性数据的分布展示

   说明:

    柱状图主要是应用在可视化数据的应用场景中

   例如:一个班级中学生的籍贯分布,下载一款app操作分布

2、绘图原理

  bar函数的使用

  

参数的说明:

注意:

  不使用默认的‘Unicode minues’模块来处理坐标轴轴线的刻度是负数的情况

  一般使用“ASCII hypen”模块来处理坐标轴轴线的负刻度值的情况

  ba()r函数

  参数:

 #x:柱状图中的柱体标签值

#y:柱状图中柱体高度
#align:柱体对齐方式
#color:柱体颜色
#tick_label:刻度标签值
示例
import matplotlib as  mpl
import matplotlib.pyplot as plt

mpl.rcParams['font.sans-serif'] = ['SimHei'] #完成字体的配置
mpl.rcParams['axes.unicode_minus'] = False #实现模式选择

x = [1,2,3,4,5]
y=[5,6,4,3,12]

plt.bar(x,y,align='center',color = 'red',tick_label = ['A','B','C','D','E'],alpha = 0.6)

plt.xlabel('测试难度')
plt.ylabel('试卷分数')

plt.grid(True,axis = 'y',ls = ':',color = 'r',alpha = 0.3)
plt.show()

#x:柱状图中的柱体标签值
#y:柱状图中柱体高度
#align:柱体对齐方式
#color:柱体颜色
#tick_label:刻度标签值

  运行:(存的截图把试卷难度截没了)

2、条形图

将柱形图的柱体由垂直变为水平方向

  barh()函数

3、堆积图

 

import matplotlib as  mpl
import matplotlib.pyplot as plt

mpl.rcParams['font.sans-serif'] = ['SimHei'] #完成字体的配置
mpl.rcParams['axes.unicode_minus'] = False #实现模式选择

x = [1,2,3,4,5]
y=[5,6,4,3,12]
y1 = [2,6,3,8,5]

plt.bar(x,y,align='center',color = 'red',tick_label = ['A','B','C','D','E'],label= '班级A')
plt.bar(x,y1,align='center',bottom=y,color='y',label = '班级B' )


plt.xlabel('测试难度')
plt.ylabel('试卷分数')

#plt.grid(True,axis = 'y',ls = ':',color = 'r',alpha = 0.3)
plt.legend()
plt.show()

  

 

 

  

#小改动
plt.barh(x,y,align='center',color = 'red',tick_label = ['A','B','C','D','E'],label= '班级A') plt.barh(x,y1,align='center',left=y,color='y',label = '班级B' ) plt.ylabel('测试难度') plt.xlabel('试卷分数')

  

      


 4、分块图


  分类


    多数据并列柱状图和多数据平行条状图


    示例


import matplotlib as  mpl
import matplotlib.pyplot as plt
import numpy as np
mpl.rcParams['font.sans-serif'] = ['SimHei'] #完成字体的配置
mpl.rcParams['axes.unicode_minus'] = False #实现模式选择

x = np.arange(5)
y=[6,10,4,5,1]
y1 = [2,6,3,8,5]

bar_width = 0.35
tick_label = ['A','B','C','D','E']

plt.bar(x,y,bar_width,color = 'red',align='center',label= '班级A',alpha = 0.5)
plt.bar(x+bar_width,y1,bar_width,color='y',align='center',label = '班级B' ,alpha = 0.5)


plt.ylabel('测试难度')
plt.xlabel('试卷分数')

plt.xticks(x+bar_width/2,tick_label)

plt.legend()
plt.show()

5、扩展:参数的探索  
  问题,如何在在柱体图上绘制装饰或装饰图,如何去设置柱体的填充样式
    
  可以使用关键字hatch的取值 “/”,‘\\’,“|”,“-”
  
  说明:符号字符串的符号数量越多,柱体的集合图形密集程度越高。

6、饼图  
  作用:饼图是用来朱暂时定性数据比例分布特征的统计图形
  
  应用场景:定性数据的比例展示或者离散数据的比例展示
  
  绘制原理:
    
      pie()

import matplotlib as mpl
import  matplotlib.pyplot as plt

mpl.rcParams['font.sans-serif'] = ['SimHei'] #完成字体的配置
mpl.rcParams['axes.unicode_minus'] = False #实现模式选择

labels = 'A难度','B难度','C难度','D难度'
students = [0.35,0.15,0.20,0.30]

colors = ['#377eb8','#4daf4a','#984ea3','#ff7f00']

explode = (0.1,0.1,0.1,0.1)

plt.pie(students,explode=explode,labels=labels,colors=colors,autopct='%3.1f%%',startangle=45,shadow=True)

plt.title('选择不同难度测试试卷的学生占比')
plt.show()

#students :饼片代表百分比
#explode :饼片边缘偏离半径百分比
#labels : 标记每一片饼片文本标签内容
#autopct :饼片标签内容对应数值百分比样式
#startangle :从x轴为起始位置,第一个饼片逆时针旋转的角度
#shadow :是否绘制饼片的阴影
#color :饼片的颜色

说明:labels:分布存储四份不同难度的试卷

    students: 存储选择每套试卷的学生百分比

    explode:存储每份饼片边缘偏离相邻饼片边缘的半径长度比例值

    autopct:规定百分比保留一位数字

    startangle:

    shadow:觉得是否有阴影

    color:饼色

 

非分裂式饼图

~~~~

 

7、内嵌环形饼图  :找到了这一版本,并试运行

import matplotlib as mpl
import  matplotlib.pyplot as plt

mpl.rcParams['font.sans-serif'] = ['SimHei'] #完成字体的配置
mpl.rcParams['axes.unicode_minus'] = False #实现模式选择

elements = ['面粉','砂糖','奶油','草莓酱','坚果']

weight1 = [40,15,21,10,15]
weight2 = [30,25,20,15,10]

colormaplist = ["#e41a1c", "#377eb8", "#4daf4a", "#984ea3", "#ff7f00"]

outer_colors = colormaplist
infor_colors = colormaplist

wedges1,texts1,autotexts1 = plt.pie(weight1,
                                    autopct = '%3.1f%%',
                                    radius = 1,
                                    pctdistance=0.85,
                                    colors=outer_colors,
                                    textprops=dict(color='w'))

wedgeprops = dict(width=0.3,edgecolor = 'w')

wedges2,texts2,autotexts2 = plt.pie(weight2,
                                    autopct = '%3.1f%%',
                                    radius = 0.7,pctdistance=0.75,
                                    colors=outer_colors,
                                    textprops=dict(color = 'w'))

wedgeprops = dict(width=0.3,edgecolor = 'w')

plt.legend(wedges1,
           elements,
           fontsize=12,
           title="配料图",
           loc="center left",
           bbox_to_anchor=(0.91, 0, 0.3, 1)
           ) #

plt.setp(autotexts1,size = 15,weight = 'bold')
plt.setp(autotexts2,size = 15,weight = 'bold')
plt.setp(texts1,size = 12)

plt.title("不同果酱面包配料比例表的比较")

plt.show()

  

 

 

 
posted @ 2019-06-27 09:54  LQQC  阅读(562)  评论(0)    收藏  举报
hello word


为挽月明© liclap@Foxmail.com