首页 > 编程语言 >Python之Matplotlib的基本使用教程

Python之Matplotlib的基本使用教程

时间:2024-10-21 16:21:23浏览次数:8  
标签:教程 plt Python pyplot Matplotlib matplotlib np import array

1.安装

pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple #在终端输入

2. 基本配置

from matplotlib import pyplot as plt
# 让图片可以显示中文
plt.rcParams['font.sans-serif'] = 'SimHei'
# 让图片可以显示负号
plt.rcParams['axes.unicode_minus'] = False

3.用plot()绘图

import numpy as np
from matplotlib import pyplot as plt #导入库
ypoints = np.array([3, 8,5]) #返回一个数组
xpoints = np.array([0, 4,6])
plt.plot(xpoints,ypoints) #参数 1 是包含 x 轴上的点的数组。参数 2 是包含 y 轴上的点的数组。
plt.show() #显示绘图

 

⭐若plot()中只传入一个数组参数,会默认x点为0,1,2,3等,具体取决于y点的长度。

4.标记

from matplotlib import pyplot as plt
import numpy as np
ypoints = np.array([3, 8, 1, 7, 0])
plt.plot(ypoints, marker='o') #用keyword 参数来使用指定的标记强调每个点:marker
plt.show()

 

⭐可以选择其他符号标记,例如:‘*’

import matplotlib.pyplot as plt
import numpy as np
ypoints = np.array([3, 8, 1, 10])
plt.plot(ypoints, 'o:r') #marker|line|color (标记|连接线路|颜色)--fmt语法
plt.show()

 

 ⭐线路参考

Line SyntaxDescription
'-'Solid line
':'Dotted line
'--'Dashed line
'-.'Dashed/dotted line

 ⭐颜色参考

Color SyntaxDescription
'r'Red
'g'Green
'b'Blue
'c'Cyan
'm'Magenta
'y'Yellow
'k'Black
'w'White

4.1设置标记大小(ms=number)

import matplotlib.pyplot as plt
import numpy as np
ypoints = np.array([3, 8, 1, 10])
plt.plot(ypoints, marker = 'o', ms = 20) #markersize:ms 设置标记大小
plt.show()

4.2设置标记颜色(外颜色:mec='color')(内颜色:mfc='color')

import matplotlib.pyplot as plt
import numpy as np
ypoints = np.array([3, 8, 1, 10])
plt.plot(ypoints, marker = 'o', ms = 20, mec = 'r')
plt.show()

 ⭐也可以用十六进制设置标记颜色,例:mfc = '#4CAF50'

5.线

5.1设置线条样式--linestyle

import matplotlib.pyplot as plt
import numpy as np
ypoints = np.array([3, 8, 1, 10])
plt.plot(ypoints, linestyle = 'dotted')
plt.show()

 

linestyle可以写成:ls

dotted可以写成::

dashed可以写成:--

您可以选择以下任一样式:

StyleOr
'solid' (default)'-'
'dotted'':'
'dashed''--'
'dashdot''-.'
'None''' or ' '

 ⭐线条也可以设置颜色,只需要在plot()中添加参数c='颜色'

⭐线条也可以改变宽度,只需要在plot()中添加参数linewdith='浮点数'

 ⭐添加更多plot()函数即可绘制多条线

6.标签

6.1为坐标轴设置标签--xlabel(),ylabel()

import numpy as np
import matplotlib.pyplot as plt
x = np.array([80, 85, 90, 95, 100, 105, 110, 115, 120, 125])
y = np.array([240, 250, 260, 270, 280, 290, 300, 310, 320, 330])
plt.plot(x, y)
plt.xlabel("Average Pulse") #为x轴添加标签
plt.ylabel("Calorie Burnage") #为y轴添加标签
plt.show()

6.2设置整个标题--title()

import numpy as np
import matplotlib.pyplot as plt
x = np.array([80, 85, 90, 95, 100, 105, 110, 115, 120, 125])
y = np.array([240, 250, 260, 270, 280, 290, 300, 310, 320, 330])
plt.plot(x, y)
plt.title("Sports Watch Data") #添加标题
plt.xlabel("Average Pulse")
plt.ylabel("Calorie Burnage")
plt.show()

 ⭐可以在title()中添加参数loc='位置',设置标题位置。合法值为:“left”、“right”和“center”。默认值为 'center'。

 

 6.3设置标题和标签的字体属性--fontdict

import numpy as np
import matplotlib.pyplot as plt
x = np.array([80, 85, 90, 95, 100, 105, 110, 115, 120, 125])
y = np.array([240, 250, 260, 270, 280, 290, 300, 310, 320, 330])
font1 = {'family':'serif','color':'blue','size':20}
font2 = {'family':'serif','color':'darkred','size':15}
plt.title("Sports Watch Data", fontdict = font1) #传入的是一个键值对字典
plt.xlabel("Average Pulse", fontdict = font2)
plt.ylabel("Calorie Burnage", fontdict = font2)
plt.plot(x, y)
plt.show()

 7.网格

7.1添加网格线--grid()

import numpy as np
import matplotlib.pyplot as plt
plt.grid()
plt.show()

⭐像grid()中添加参数axis='值'可以指定需要显示的网格线,合法值为:'x'、'y' 和 'both'。默认值为 'both'。

⭐可以设置网格的 line 属性,比如这样: grid(color = 'color', linestyle = 'linestyle', linewidth = number)。

8.子图

8.1绘制子图--subplot()

import matplotlib.pyplot as plt
import numpy as np

#图1:
y = np.array([3, 8, 1, 10])
plt.subplot(1, 2, 1)
plt.plot(y)

#图2:
y = np.array([10, 20, 30, 40])
plt.subplot(1, 2, 2)
plt.plot(y)

plt.show()

 

方法中有两个参数,第一个和第二个代表布局有几行几列,第三个代表图的位置索引

8.2添加标题--title()

import matplotlib.pyplot as plt
import numpy as np

#图1:
y = np.array([3, 8, 1, 10])
plt.subplot(1, 2, 1)
plt.title("abc")
plt.plot(y)

#图2:
y = np.array([10, 20, 30, 40])
plt.subplot(1, 2, 2)
plt.title("def")
plt.plot(y)

plt.show()

8.3为整个视图添加标题--suptitle()

import matplotlib.pyplot as plt
import numpy as np

#图1:
y = np.array([3, 8, 1, 10])
plt.subplot(1, 2, 1)
plt.title("abc")
plt.plot(y)

#图2:
y = np.array([10, 20, 30, 40])
plt.subplot(1, 2, 2)
plt.title("def")
plt.plot(y)

plt.suptitle('eng')
plt.show()

9.分散符号

9.1创建散点图--scatter(x,y)

import matplotlib.pyplot as plt
import numpy as np

y = np.array([3, 8, 1, 10,11,5,7,6,20])
x = np.array([2,5,6,7,4,6,17,21,2])
plt.scatter(x,y)
plt.show()

 scatter()中必须有两个相同长度的数组

 9.2比较绘图

import matplotlib.pyplot as plt
import numpy as np

y = np.array([3, 8, 1, 10,11,5,7,6,20])
x = np.array([2,5,6,7,4,6,17,21,2])
plt.scatter(x,y)

y = np.array([1, 3, 5, 7,8,4,5,2,14])
x = np.array([1,1,9,5,3,10,16,43,3])
plt.scatter(x,y)

plt.show()

⭐可以在scatter中传入参数color=‘颜色’,设置散点颜色

⭐也可以传入与散点长度相同的颜色数组,为每个点设置不同颜色

 ⭐Matplotlib 模块有许多可用的颜色图。颜色图就像一个颜色列表,其中每种颜色都有一个范围为 从 0 到 100。如何创建如下:

import matplotlib.pyplot as plt
import numpy as np

x = np.array([5, 7, 8, 7, 2, 17, 2, 9, 4, 11, 12,17,65])
y = np.array([99, 86, 87, 88, 111, 86, 103, 87, 94, 78, 77,75,98])
colors = np.array([0, 10, 20, 30, 40, 45, 50, 55, 60, 70, 80,90,100]) #必须创建一个具有值(从 0 到 100)的数组,散点图中的每个点都有一个值:

plt.scatter(x, y, c=colors, cmap='viridis') #cmap='颜色图',本列中用的是viridis颜色图,它的范围从 0 开始,即0是紫色,最多100是黄色。
plt.colorbar() #在绘图中包含颜色图
plt.show()

 

⭐ 大家可以去搜ColorMap内置颜色图去使用

⭐可以在scatter()中传入参数s=sizes,去改变每个点的大小,sizes参数必须与x轴和y轴有同样的数组长度。

⭐可以在scatter()中传入参数alpha=值,来调整点的透明度,值的范围是[0,1]。

10.柱形图

10.1创建--bar(x,y)

import matplotlib.pyplot as plt
import numpy as np

x = np.array(["A", "B", "C", "D"])
y = np.array([3, 8, 1, 10])

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

 

 10.2水平创建--barh()

import matplotlib.pyplot as plt
import numpy as np
x = np.array(["A", "B", "C", "D"])
y = np.array([3, 8, 1, 9])
plt.barh(x, y)
plt.show()

 ⭐可以在创建函数里添加参数color='颜色',设置条形颜色

⭐可以在创建函数里添加参数width=宽度,设置条形宽度,只能用于bar(),对于水平条,barh()请用height=高度。

11.直方图

11.1创建直方图--hist()

import matplotlib.pyplot as plt
import numpy as np

x = np.random.normal(170, 10, 250) #使用 NumPy 随机生成一个具有 250 个值的数组, 其中,值将集中在 170 附近,标准差为 10。

plt.hist(x)
plt.show() 

⭐结果不唯一

12.饼图

12.1创建--pie()

import matplotlib.pyplot as plt
import numpy as np
y = np.array([35, 25, 25, 15]) #每个值所占大小==x/sum(x)
plt.pie(y) #从x轴开始逆时针绘图
plt.show() 

 12.2添加标签--labels()

import matplotlib.pyplot as plt
import numpy as np

y = np.array([35, 25, 25, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Dates"]

plt.pie(y, labels = mylabels)
plt.show() 

 ⭐在pie()中传入参数startangle=角度(例如90),可以设置起始角度,默认为0,即x轴

12.3吃披萨--explode

#将 “Apples” 楔形从饼图中心拉出 0.2:

import matplotlib.pyplot as plt
import numpy as np

y = np.array([35, 25, 25, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Dates"]
myexplode = [0.2, 0, 0, 0] #表示每个披萨离中心点的距离

plt.pie(y, labels = mylabels, explode = myexplode)
plt.show() 

 ⭐在pie()中传入shadow=True就可以让图具有阴影效果

⭐在pie()中传入colors=数组,数值中每个颜色对应一块楔形

12.4披萨类别(添加解释列表)--legend()

import matplotlib.pyplot as plt
import numpy as np

y = np.array([35, 25, 25, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Dates"]

plt.pie(y, labels = mylabels)
plt.legend()
plt.show() 

 ⭐可以在legend传入loc='位置'设置图例位置:

supported values are 'best', 'upper right', 'upper left', 'lower left', 'lower right', 'right', 'center left', 'center right', 'lower center', 'upper center', 'center'

⭐可以在legend传入title = "标题名",设置图例标题

                                                                                                          ----------以上如有侵权请联系我 

标签:教程,plt,Python,pyplot,Matplotlib,matplotlib,np,import,array
From: https://blog.csdn.net/2302_81268819/article/details/142898332

相关文章

  • 通义灵码实践教程——单元测试
    通义灵码加持的单元测试实践本文首先讲述了什么是单元测试、单元测试的价值、一个好的单元测试所具备的原则,进而引入如何去编写一个好的单元测试,通义灵码是如何快速生成单元测试的。什么是单元测试?单元测试是一种软件测试方法,通过编写代码来验证应用程序中最小的可测试单元(如单......
  • 黑客入门教程(非常详细)从零基础入门到精通,看完这一篇就够了
       这篇文章没有什么套路。就是一套自学理论和方向,具体的需要配合网络黑白去学习。毕竟是有网络才会有黑白!有自学也有培训!1.打死也不要相信什么分分钟钟教你成为大黑阔的,各种包教包会的教程,就算打不死也不要去购买那些所谓的盗号软件之类的东西。2,我之前让你们在没有目......
  • Arc浏览器打包扩展程序教程
    如何分享已安装的Chrome插件并进行离线安装如果你想将自己已安装的Chrome插件分享给朋友,进行离线安装,可以按照以下步骤操作:步骤1:进入扩展程序管理页面打开Chrome浏览器,在地址栏中输入arc://extensions/进入扩展程序页面。或者点击菜单栏下按钮,选择“扩展程序......
  • Vue3 + TypeScript:从环境搭建到组件通信的完整前端开发教程
    在前端开发领域,Vue3与TypeScript的组合备受青睐。Vue3带来高效灵活的开发体验,TypeScript则提供强大的类型安全和可维护性。本文将详细介绍如何使用Vue3和TypeScript进行开发,文章内容将按照以下顺序展开:一、环境准备1.安装Node.js:从Node.js官方网站下载并安装适合......
  • 【OpenAI】第一节(OpenAI API)获取OpenAI API KEY的两种方式,开发者必看全方面教程!
    在当今人工智能迅猛发展的时代,OpenAI的大模型为开发者提供了强大的文本生成能力。无论你是想创建聊天机器人、内容生成工具,还是其他创新应用,掌握如何获取和使用OpenAIAPIKey是你迈向成功的第一步!本文将详细介绍获取APIKey的步骤、充值方法以及如何在项目中调用API......
  • python的类型注解
    类型注解"""类型注解: python的类型注解(TupgHints)是在python3.5版本中引入的一项语言特性,用于为变量、参数和函数返回值 等添加静态类型的信息。   类型注解使用“:”和箭头符号->来表示类型信息 具体来说,可以在函数定义中为参数和返回值添加类......
  • python开发“动物园里有什么”游戏
    ......
  • python 实现RGB和HSV相互转换算法
    RGB和HSV相互转换算法介绍RGB和HSV之间的相互转换算法可以通过一系列的数学计算来实现。以下是对这两种色彩空间之间转换的基本算法的概述:RGB到HSV的转换1、归一化RGB值:首先,将RGB值从范围[0,255]归一化到[0,1]。这可以通过将每个颜色分量除以255来实现。2、计算明度V......
  • 如果python的类变量和实例变量名字一样会如何?
    python中类变量是属于类的,不属于具体的对象,所有对象共享一个类变量。类变量可以通过类名.变量名访问,也可以通过实例化后的对象.变量名访问。那么,如果我给对象的变量起的名字和类变量同名会如何?我们写代码测试一下:classFoo:name="hello"defset_instance_name(self,......
  • windows 像Linux一样好用 msys2 环境配置教程
    很多Linux的命令诸如clearlsgcczsd在windows上都暂时不能用,这点很蛋疼,所以msys2横空出世。先安装msys2国内网络环境推荐用国内的开源镜像站点来(国外网络可以半无视这一步):(https://mirrors.tuna.tsinghua.edu.cn/#"清华大学开源镜像站")然后下载安装,配置国内源:(http......