matplotlib -- 绘图操作 -- 数据分析三剑客

matplotlib,绘图,操作,数据分析,三剑客 · 浏览次数 : 9

小编点评

## 饼图生成代码示例 ```python import matplotlib.pyplot as plt import matplotlib.collections as collections # 设置饼图参数 radius = 1.5 # 圆形的半径 theta = np.linspace(0, 2*np.pi, 200) # 分段角度 colors = ['#336699', '#4169E1', '#66CCFF', '#99B34D'] # 设置颜色列表 # 生成饼图 fig, ax = plt.subplots() ax.pie(theta, radius, colors, labels=['a', 'b', 'c', 'd']) # 设置饼图标签格式 ax.set_title(r"饼图示例,半径为{radius:.1f},角度范围为[0, 2π]") ax.set_xlabel("角度") ax.set_ylabel("比例") # 设置饼图边框 ax.add_patch(plt.Circle(xy, radius, color='black', alpha=0.5)) # 设置饼图刻度 ax.set_xticks(np.linspace(0, 2*np.pi, 20)) ax.set_yticks(np.linspace(0, 1, 20)) # 设置饼图标签 ax.annotate(text="a", xy=(0.5, 0.8), xytext=(0.95, 0.8), s="13.924%", fontsize=8) ax.annotate(text="b", xy=(0.5, 0.6), xytext=(0.95, 0.6), s="27.8481%", fontsize=8) ax.annotate(text="c", xy=(0.5, 0.4), xytext=(0.95, 0.4), s="39.2405%", fontsize=8) ax.annotate(text="d", xy=(0.5, 0.2), xytext=(0.95, 0.2), s="18.9873%", fontsize=8) # 显示饼图 plt.show() ```

正文

博客地址:https://www.cnblogs.com/zylyehuo/

开发环境

  • anaconda
    • 集成环境:集成好了数据分析和机器学习中所需要的全部环境
    • 安装目录不可以有中文和特殊符号
  • jupyter
    • anaconda提供的一个基于浏览器的可视化开发工具
import matplotlib.pyplot as plt
import numpy as np

plt.plot()绘制线性图

  • 绘制单条线形图
  • 绘制多条线形图
  • 设置坐标系的比例plt.figure(figsize=(a,b))
  • 设置图例legend()
  • 设置轴的标识
  • 图例保存
    • fig = plt.figure()
    • plt.plot(x,y)
    • figure.savefig()
  • 曲线的样式和风格

绘制单条线形图

x = np.array([1,2,3,4,5])
y = x + 3
​
plt.plot(x,y)

[<matplotlib.lines.Line2D at 0x111dc3f28>]

绘制多条线形图

方式一

plt.plot(x,y)
plt.plot(x+1,y-2)

[<matplotlib.lines.Line2D at 0x111e38b00>]

方式二

plt.plot(x,y,x+1,y-2)

[<matplotlib.lines.Line2D at 0x111f80a20>,
<matplotlib.lines.Line2D at 0x111f80be0>]

设置坐标系的比例

  • plt.figure(figsize=(a,b))
plt.figure(figsize=(5,9))  # 放置在绘图的plot方法之前
plt.plot(x,y)

[<matplotlib.lines.Line2D at 0x1120aebe0>]

设置图例legend()

plt.plot(x,y,label='x,y')
plt.plot(x+1,y-2,label='x+1,y-2')
plt.legend()  # 图例生效

<matplotlib.legend.Legend at 0x11693a5f8>

设置轴的标识

plt.plot(x,y)
plt.xlabel('temp')
plt.ylabel('dist')
plt.title('dist&temp')

Text(0.5,1,'dist&temp')

图例保存

  • fig = plt.figure()
  • plt.plot(x,y)
  • figure.savefig()
fig = plt.figure()  # 该对象的创建一定要放置在plot绘图之前
plt.plot(x,y,label='x,y')
fig.savefig('./123.png')

曲线的样式和风格

设置颜色和透明度

plt.plot(x,y,c='red',alpha=0.5)
[<matplotlib.lines.Line2D at 0x1170d2ef0>]

柱状图

  • plt.bar()
    • 参数
      • 第一个参数是索引
      • 第二个参数是数据值
      • 第三个参数是条形的宽度
plt.bar(x,y)

<BarContainer object of 5 artists>

直方图

  • 是一个特殊的柱状图,又叫做密度图
  • plt.hist()的参数
    • bins # 柱子的个数
      • 可以是一个bin数量的整数值,也可以是表示bin的一个序列。默认值为10
    • normed
      • 如果值为True,直方图的值将进行归一化处理,形成概率密度,默认值为False
    • color
      • 指定直方图的颜色。可以是单一颜色值或颜色的序列。如果指定了多个数据集合,例如DataFrame对象,颜色序列将会设置为相同的顺序。如果未指定,将会使用一个默认的线条颜色
    • orientation
      • 通过设置orientation为horizontal创建水平直方图。默认值为vertical
data = [1,1,2,2,2,3,4,5,6,6,6,6,6,6,7,8,9,0]
plt.hist(data,bins=20)

(array([1., 0., 2., 0., 3., 0., 1., 0., 1., 0., 0., 1., 0., 6., 0., 1., 0.,
1., 0., 1.]),
array([0. , 0.45, 0.9 , 1.35, 1.8 , 2.25, 2.7 , 3.15, 3.6 , 4.05, 4.5 ,
4.95, 5.4 , 5.85, 6.3 , 6.75, 7.2 , 7.65, 8.1 , 8.55, 9. ]),
<a list of 20 Patch objects>)

饼图

  • pie(),饼图也只有一个参数x
  • 饼图适合展示各部分占总体的比例,条形图适合比较各部分的大小
arr=[11,22,31,15]  # 整数--显示四个数各占的百分比
plt.pie(arr)

([<matplotlib.patches.Wedge at 0x1178be1d0>,
<matplotlib.patches.Wedge at 0x1178be6a0>,
<matplotlib.patches.Wedge at 0x1178beb70>,
<matplotlib.patches.Wedge at 0x1178c60f0>],
[Text(0.996424,0.465981,''),
Text(-0.195798,1.08243,''),
Text(-0.830021,-0.721848,''),
Text(0.910034,-0.61793,'')])

arr=[0.2,0.3,0.1]  # 小数--表示比例--第一个数占0.2,第二个数占0.3,以此类推...
plt.pie(arr)

([<matplotlib.patches.Wedge at 0x1177d0e80>,
<matplotlib.patches.Wedge at 0x1177da390>,
<matplotlib.patches.Wedge at 0x1177da8d0>],
[Text(0.889919,0.646564,''),
Text(-0.646564,0.889919,''),
Text(-1.04616,-0.339919,'')])

# labels 设置对应的标识
arr=[11,22,31,15]
plt.pie(arr,labels=['a','b','c','d'])

([<matplotlib.patches.Wedge at 0x11794aa90>,
<matplotlib.patches.Wedge at 0x11794af60>,
<matplotlib.patches.Wedge at 0x1179544e0>,
<matplotlib.patches.Wedge at 0x117954a20>],
[Text(0.996424,0.465981,'a'),
Text(-0.195798,1.08243,'b'),
Text(-0.830021,-0.721848,'c'),
Text(0.910034,-0.61793,'d')])

# labeldistance 设置标识到圆心的距离
arr=[11,22,31,15]
plt.pie(arr,labels=['a','b','c','d'],labeldistance=0.3)

([<matplotlib.patches.Wedge at 0x1179e2278>,
<matplotlib.patches.Wedge at 0x1179e2748>,
<matplotlib.patches.Wedge at 0x1179e2c18>,
<matplotlib.patches.Wedge at 0x1179eb198>],
[Text(0.271752,0.127086,'a'),
Text(-0.0533994,0.295209,'b'),
Text(-0.226369,-0.196868,'c'),
Text(0.248191,-0.168526,'d')])

# autopct='%.6f%%'  自动计算出每部分所占的比例,保留六位小数
arr=[11,22,31,15]
plt.pie(arr,labels=['a','b','c','d'],labeldistance=0.3,autopct='%.6f%%')

([<matplotlib.patches.Wedge at 0x117a709e8>,
<matplotlib.patches.Wedge at 0x117a7a128>,
<matplotlib.patches.Wedge at 0x117a7a898>,
<matplotlib.patches.Wedge at 0x117a83048>],
[Text(0.271752,0.127086,'a'),
Text(-0.0533994,0.295209,'b'),
Text(-0.226369,-0.196868,'c'),
Text(0.248191,-0.168526,'d')],
[Text(0.543504,0.254171,'13.924050%'),
Text(-0.106799,0.590419,'27.848101%'),
Text(-0.452739,-0.393735,'39.240506%'),
Text(0.496382,-0.337053,'18.987341%')])

# explode 设置每个部分到圆心的距离
# shadow 设置阴影
arr=[11,22,31,15]
plt.pie(arr,labels=['a','b','c','d'],labeldistance=0.3,shadow=True,explode=[0.2,0.3,0.2,0.4])

([<matplotlib.patches.Wedge at 0x117ab2390>,
<matplotlib.patches.Wedge at 0x117ab2b38>,
<matplotlib.patches.Wedge at 0x117abb390>,
<matplotlib.patches.Wedge at 0x117abbba8>],
[Text(0.45292,0.21181,'a'),
Text(-0.106799,0.590419,'b'),
Text(-0.377282,-0.328113,'c'),
Text(0.579113,-0.393228,'d')])

散点图

  • scatter()
  • 因变量随自变量而变化的大致趋势
x = np.array([1,3,5,7,9])
y = x ** 2 - 3

plt.scatter(x,y)

<matplotlib.collections.PathCollection at 0x117c1d780>

Type Markdown and LaTeX: 𝛼2
Type Markdown and LaTeX: 𝛼2
Type Markdown and LaTeX: 𝛼2

与matplotlib -- 绘图操作 -- 数据分析三剑客相似的内容:

matplotlib -- 绘图操作 -- 数据分析三剑客

博客地址:https://www.cnblogs.com/zylyehuo/ 开发环境 anaconda 集成环境:集成好了数据分析和机器学习中所需要的全部环境 安装目录不可以有中文和特殊符号 jupyter anaconda提供的一个基于浏览器的可视化开发工具 import matplotlib.

【matplotlib基础】--绘图配置

Matplotlib 提供了大量配置参数,这些参数可以但不限于让我们从整体上调整通过 Matplotlib 绘制的图形样式,这里面的参数还有很多是功能性的,和其他工具结合时需要用的配置。 通过plt.rcParams,可以查看所有的配置信息: import matplotlib.pyplot as

Matplotlib.pyplot.plot 绘图

Matplotlib.pyplot 创建图形、在图形中创建创建一个绘图区域、在绘图区域中你那个绘制一些线、在图形中添加标签之类 ### 画二维平面图 ```python x = np.arange(0, 10, 2) y1 = x y2 = x ** 2 plt.plot(x, y1, '*g--'

【matplotlib基础】--画布

Matplotlib 库是一个用于数据可视化和绘图的 Python 库。它提供了大量的函数和类,可以帮助用户轻松地创建各种类型的图表,包括直方图、箱形图、散点图、饼图、条形图和密度图等。 使用 Matplotlib 的过程中,遇到的难点并不在于绘制各类的图形,因为每种图形都有其对应的API。难点在于

【matplotlib基础】--坐标轴

Matplotlib的坐标轴是用于在绘图中表示数据的位置的工具。 坐标轴是图像中的水平和垂直线,它们通常表示为 x 轴和 y 轴。坐标轴的作用是帮助观察者了解图像中数据的位置和大小,通常标有数字或标签,以指示特定的值在图像中的位置。 1. 坐标轴范围 Matplotlib绘制图形时,会自动根据X,Y

【matplotlib基础】--刻度

Matplotlib中刻度是用于在绘图中表示数据大小的工具。 刻度是坐标轴上的数字或标签,用于指示数据的大小或值,通常以整数或小数表示,具体取决于坐标轴的类型和限制。 1. 主次刻度 默认的绘制时,坐标轴只有默认的主要刻度,如下所示: from matplotlib.ticker import Mu

【matplotlib 基础】--目录(完结)

Matplotlib 库是一个用于数据可视化和绘图的 Python 库。 它提供了大量的函数和类,可以帮助用户轻松地创建各种类型的图表,包括直方图、箱形图、散点图、饼图、条形图和密度图等。 本系列具体内容包括: 画布 画布是其他所有的元素的载体,可以说是最重要,也是最容易被忽视的元素。 绘制图形之前

数据分析---matplotlib模块的使用

1.摘要 在数据可视化、统计绘图和图表生成领域,Python 被广泛使用,其中 Matplotlib 是一个极其重要的基础三方库。本博客旨在介绍 Python 及其三方库 Matplotlib 的详细信息,包括 Matplotlib 的安装步骤、示例代码及使用注意事项。 2.引言 2.1 什么是Ma

【matplotlib基础】--子图

使用Matplotlib对分析结果可视化时,比较各类分析结果是常见的场景。在这类场景之下,将多个分析结果绘制在一张图上,可以帮助用户方便地组合和分析多个数据集,提高数据可视化的效率和准确性。 本篇介绍Matplotlib绘制子图的常用方式和技巧。 1. 添加子图的方式 添加子图主要有两种方式,一种是

【matplotlib基础】--3D图形

matplotlib 在1.0版本之前其实是不支持3D图形绘制的。 后来的版本中,matplotlib加入了3D图形的支持,不仅仅是为了使数据的展示更加生动和有趣。更重要的是,由于多了一个维度,扩展了其展示数据分布和关系的能力,可以一次从三个维度来比较数据。 下面介绍在matplotlib中绘制各类