可视化整理4---matplotlib完善统计图形

7 篇文章 0 订阅
6 篇文章 0 订阅

 对python可视化处理,进行补充说明,matplotlib 进行补充说明,对图例,标题,刻度,坐标轴等进行了更加充分的说明和展示,代码和运行结果图像展示如下:(整理不易,点个赞再走吧,谢谢)

一. 添加图例和标题

1.1 图例和标题的设置方法


函数 legend(),title()

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.linspace(-2*np.pi,2*np.pi,200)
y = np.sin(x)
y1 = np.cos(x)
#r"$$"模式 输出印刷级别的文档效果
plt.plot(x,y,label = r"$\sin(x)$")
plt.plot(x,y1,label = r"$\cos(x)$")

plt.legend(loc = "lower left")
plt.title("正弦函数和余弦函数的折线图")

plt.show()

1.2 案例1-图例的展示样式的调整

函数参数:legend()


loc #位置参数
bbox_to_anchor #线框位置参数
title #图例标签内容的标题参数
shadow #线框阴影
fancybox #线框圆角处理参数

其中 loc 位置
upper right 1
upper left 2
lower left 3
lower right 4
center left 6
center right 7 
lower center 8
upper center 9
center 10

案例1-图例的展示样式的调整
'''
函数参数:legend()
loc #位置参数
bbox_to_anchor #线框位置参数
title #图例标签内容的标题参数
shadow #线框阴影
fancybox #线框圆角处理参数

loc 位置
upper right 1
upper left 2
lower left 3
lower right 4
center left 6
center right 7 
lower center 8
upper center 9
center 10

'''
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0,2.1,0.1)
y = np.power(x,3)
y1 = np.power(x,2)
y2 = np.power(x,1)

plt.plot(x,y,ls = "-",lw = 2,label = "$x^{3}$")
plt.plot(x,y1,ls = "-",lw = 2,c = "r",label = "$x^{2}$")
plt.plot(x,y2,ls = "-",lw = 2,c = "y",label = "$x^{1}$")


plt.legend(loc = "upper left",#位置参数
           bbox_to_anchor = (0.05,0.95),#线框位置参数
           ncol = 3,
           title = "power function",#图例标签内容的标题参数
           shadow = True,#线框阴影
           fancybox = True#线框圆角处理参数         
          )

plt.show()

1.3 案例2-标题的展示样式的调整


#关键字参数 包括:1.字体样式,2.字体大小,3.字体风格4.字体颜色

案例2-标题的展示样式的调整
#关键字参数 包括:1.字体样式,2.字体大小,3.字体风格4.字体颜色

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-2,2,1000)
y = np.exp(x)


plt.plot(x,y,ls = "-",lw = 2,color = "g")
plt.title("center demo")

plt.title("Left Demo",
          loc = "left",
          fontdict = {"size":"xx-large",
                     "color":"r",
                     "family":"Times New Roman"}
         )

plt.title("right demo",
          loc = "right",
          family = "Comic Sans MS",#字体类别
          size = 20,#字体大小
          style = "oblique",#字体风格
          color = "c"#字体颜色
         )

plt.show()

1.4 案例3-带图例的饼图

案例3-带图例的饼图

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

elements = ["面粉","砂糖","奶油","草莓酱","坚果"]
weight = [40,15,20,10,15]
colors = ["#1b9e77","#d95f02","#7570b3","#66a61e","#e6ab02"]

wedges,texts,autotexts = plt.pie(weight,
                                 autopct = "%3.1f%%",
                                 textprops = dict(color = "w"),
                                 colors = colors
                                 )


plt.legend(wedges,
           elements,
           fontsize = 12,
           title = "配料表",#图例标签内容的标题参数
           loc = "center left",#位置参数
           bbox_to_anchor = (0.91,0,0.3,1),#线框位置参数
           shadow = True,#线框阴影
           fancybox = True#线框圆角处理参数         
          )


plt.setp(autotexts,size = 15,weight = "bold")
plt.setp(texts,size = 12)
plt.title("果酱面包配料比例表")
plt.show()

二. 调整刻度范围和刻度标签

2.1 调整刻度范围和刻度标签的方法


函数 xlim(),xtikcs()

# 函数 xlim(),xtikcs()

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-2*np.pi,2*np.pi,200)
y = np.sin(x)

plt.subplot(211)
plt.plot(x,y)
plt.subplot(212)
plt.xlim(-2*np.pi,2*np.pi)

plt.xticks([-2*np.pi,-3/2*np.pi,-1*np.pi,-1/2*np.pi,0,1/2*np.pi,1*np.pi,3/2*np.pi,2*np.pi],
           [r"$-2\pi$",r"$-3/2\pi$",r"$-1\pi$",r"$-1/2\pi$",0,r"$1/2\pi$",r"$1\pi$",r"$3/2\pi$",r"$2\pi$"]
          )

plt.plot(x,y)
plt.show()

2.2 延伸阅读-函数 subplot()


函数 subplot() 子区函数 绘制几何形状相同的网格区域

2.3 案例-逆序设置坐标轴刻度标签

案例-逆序设置坐标轴刻度标签


import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np


mpl.rcParams["font.sans-serif"] = ["fangsong"]
mpl.rcParams["axes.unicode_minus"] = False

time = np.arange(1,11,0.5)
machinePower = np.power(time,2) + 0.7

plt.plot(time,machinePower,
        linestyle = "-",
        linewidth = 2,
        color = "r")

plt.xlim(10,1)
plt.xlabel("使用年限")
plt.ylabel("机器功率")
plt.title("机器损耗曲线")
plt.grid(ls = ":",lw = 1,color = "gray",alpha = 0.5)

plt.show()

三.  向统计图形添加表格

函数参数:table()


cellText #表格的数值,将源数据按照行进行分组,每组数据放在列表里存储,所有组数据再放到列表里存储
cellLoc #表格中数据对齐位置,左对齐、居中、右对齐
colWidths #表格每列的宽度
colLabels #表格每列的列名称
colColours #表格每列的列名称所在的单元格的颜色
rowLables #表格每行的行名称
rowLoc #表格每行的行名称对齐位置,可以左对齐、居中、右对齐
loc #表格在画布中的位置

'''
函数参数:table()
cellText #表格的数值,将源数据按照行进行分组,每组数据放在列表里存储,所有组数据再放到列表里存储
cellLoc #表格中数据对齐位置,左对齐、居中、右对齐
colWidths #表格每列的宽度
colLabels #表格每列的列名称
colColours #表格每列的列名称所在的单元格的颜色
rowLables #表格每行的行名称
rowLoc #表格每行的行名称对齐位置,可以左对齐、居中、右对齐
loc #表格在画布中的位置

'''

import matplotlib as mpl
import matplotlib.pyplot as plt

mpl.rcParams["font.sans-serif"] = ["fangsong"]
mpl.rcParams["axes.unicode_minus"] = False

labels = "A难度水平","B难度水平","C难度水平","D难度水平"
students = [0.35,0.15,0.20,0.35]
explode = (0.1,0.1,0.1,0.1)
colors = ["#377eb8","#e41a1c","#4daf4a","#984ea3"]


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

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

colLabels = ["A难度水平","B难度水平","C难度水平","D难度水平"]
rowLabels = ["学生选择试卷人数"]

studentValues = [[350,150,200,300]]

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

plt.table(cellText = studentValues,
          cellLoc = "center",
          colWidths = [0.1] * 4,
          colLabels = colLabels,
          colColours = colColors,
          rowLabels = rowLabels,
          rowLoc = "center",
          loc = "bottom")

plt.savefig('plot.png', dpi=300)# 保存图像并提高清晰度
plt.show()

附录

个人总结笔记经供参考,如有不足后续会继续添改,我们一起共同学习进步,都看到最后了麻烦点个赞再走,谢谢⭐

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值