首页 > 编程语言 >1. Python 与 Matplotlib

1. Python 与 Matplotlib

时间:2024-10-29 23:24:24浏览次数:7  
标签:plot plt ypoints Python show Matplotlib np array

PyPlot 绘图

matplotlib的安装

!pip install matplotlib

import matplotlib
print(matplotlib.__version__) #查看版本
import matplotlib.pyplot as plt
# 在图中从0 0 到 6 250 画一条直线   默认绘制直线
import numpy as np

xpoints = np.array([0,6])  # 注意是两个x坐标值
ypoints = np.array([0,250])

plt.plot(xpoints , ypoints)
plt.show()

image

# 无线绘图仅仅绘制标记 传入 ‘o’  多点
# import numpy as np

# xpoints = np.array([0,6])  # 注意是两个x坐标值
# ypoints = np.array([0,250])

# plt.plot(xpoints , ypoints , 'o')
# plt.show()

import numpy as np

# xpoints = np.array([0,2,3,6])  # 注意是两个x坐标值  如果没有给定x的值那么默认值是升序 0  1 2 3 ....
ypoints = np.array([0,250,3,5])

plt.plot(xpoints , ypoints , 'o')  # 想要采取默认值那么要把xpoints参数去掉 绘制折线图就是去掉‘o’
plt.show()

image

标记 marker

import numpy as np

ypoints = np.array([0,250,3,5])

plt.plot(ypoints , 'o:r' ,ms = 10)   # 标记的点是圆 o     marker | line | color   ms 是 markersize
plt.show()

# mec 是边缘的颜色 mfc 是边缘内的颜色

image

线条

import numpy as np

ypoints = np.array([0,250,3,5])

plt.plot(ypoints , linestyle = 'dashed' , c = "red")    #或者dotted  或者简洁写法 ls = ':' 虚线    '-.'虚实结合 点划线
plt.show()


# 设置颜色用  c = "red"  线的宽度 lw = "20"
![image](/i/l/?n=24&i=blog/3547394/202410/3547394-20241029231847755-66822614.png)

# 多条线 
plt.plot(y1)
plt.plot(y2)


# 一对一对出现
plt.plot(x1,y1,x2,y2)

绘制标签

matplotlib.rcParams['font.sans-serif'] = ['KaiTi']

ypoints = np.array([0,250,3,5])

plt.plot(ypoints , 'o:r' ,ms = 10) 
# 设置标签
plt.xlabel("顺序");
plt.ylabel("数量")
plt.show()

image

绘制标题

matplotlib.rcParams['font.sans-serif'] = ['KaiTi']

ypoints = np.array([0,250,3,5])

plt.plot(ypoints , 'o:r' ,ms = 10) 
# 设置标签
plt.title("数量折线图")
plt.xlabel("顺序");
plt.ylabel("数量")
plt.show()

image

设置标题和标签的字体属性

matplotlib.rcParams['font.sans-serif'] = ['KaiTi']

ypoints = np.array([0,250,3,5])

# 设置字体属性
font1 = {'family' : 'sans-serif' , 'color' : 'darkred' , 'size' : 20 }


plt.plot(ypoints , 'o:r' ,ms = 10) 
# 设置标签
plt.title("数量折线图" , fontdict = font1)
plt.xlabel("顺序");
plt.ylabel("数量")
plt.show()

# 定位标题位置 在title中设置loc = 'left' 默认是center

image

为图像添加网格线

matplotlib.rcParams['font.sans-serif'] = ['KaiTi']

ypoints = np.array([0,250,3,5])

# 设置字体属性
font1 = {'family' : 'sans-serif' , 'color' : 'darkred' , 'size' : 20 }


plt.plot(ypoints , 'o:r' ,ms = 10) 
# 设置标签
plt.title("数量折线图" , fontdict = font1)
plt.xlabel("顺序");
plt.ylabel("数量")
plt.grid(color = 'green' , linestyle = '--' , axis ="both")  #axis = 'x' 默认值是both  x轴
plt.show()

image

绘制多图

x = ...
y = ...
# 2行1列 该子图是第二个
plt.subplot(2,1,2)
plt.plot(x,y)

plt.suptitle("...")   # 大标题
plt.show()

plt.tight_layout() # 可以自适应调整图片的位置

绘制散点图 scatter()

x = np.array([1,2,3,4,5,6])
y = np.array([2.4,5,6,3,5,6])

# 进阶元素数组
colors = np.array(['red','blue','hotpink','black','green','cyan'])

plt.scatter(x,y,c = colors)
plt.show()

image

进阶用法颜色图

x = np.array([1,2,3,4,5,6])
y = np.array([2.4,5,6,3,5,6])

# 进阶颜色图
colors = np.array([50,60,70,80,90,100])
sizes = np.array([50,60,70,80,90,100])
plt.scatter(x,y,c = colors , cmap = 'viridis' , s = sizes , alpha = 0.5)  # 注意这里要多加一个参数  # 透明度是 alpha
plt.colorbar() # 传入colorbar方法

plt.show()




'''
   这里的cmap = ‘nipy_spectral’是一个颜色map

   获取随机整数
   x = np.random.randint(100,size = (100))
'''

image

创建柱状图

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

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

image

# 简化版本
x = ["A","B","C","D"]
y = [3,8,1,10]

plt.bar(x,y)
# 水平柱状图   barh()
# 还可以设置宽度和高度 width height
x = ["A","B","C","D"]
y = [3,8,1,10]


plt.barh(x,y,color = "hotpink" , alpha = 0.5 , height = 0.3 )

image

创建直方图

x = np.random.normal(170,10,250)  # 平均值 170 标准差 10 包含 250 个值
plt.hist(x)
plt.show()

image

创建饼图

y = np.array([10,20,30,40])
myLabels = np.array(["男人" , "女人" , "apple" , "pig"])
plt.pie(y , labels = myLabels , startangle= 90)   # 起始角度
plt.show()

image

explode()函数

# explode函数

y = np.array([10,20,30,40])
myLabels = np.array(["男人" , "女人" , "apple" , "pig"])
myexplode = np.array([0 , 0.1 , 0 , 0 ])
plt.pie(y , labels = myLabels , startangle= 90 , explode = myexplode)   # 起始角度
plt.show()

设置阴影 和颜色数组 和图例

# 设置阴影 和颜色数组
# 设置图例
y = np.array([10,20,30,40])
myLabels = np.array(["男人" , "女人" , "apple" , "pig"])
myexplode = np.array([0 , 0.1 , 0 , 0 ])
myColors = np.array(['lightblue' , 'hotpink' , 'green' , 'red'])

plt.pie(y , labels = myLabels , startangle= 90 , explode = myexplode , shadow = True , colors = myColors)   # 起始角度

plt.legend(title = "kinds:")
plt.show()

plt.tight_layout()

image

标签:plot,plt,ypoints,Python,show,Matplotlib,np,array
From: https://www.cnblogs.com/T-double/p/18514711

相关文章

  • python 入门九大排序:1冒泡排序2插入排序3选择排序4快速排序5归并排序6堆排序7计数排序
    1冒泡排序:冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。代码如下:importnumpyasnpdefbubbling(arr):n=len(arr)foriinrange(n-1):forjinrange(n-i-1):ifarr[j......
  • Python中的*args和**kwargs
    在Python编程中,函数的参数处理是一个非常重要的特性,它让代码更加灵活和强大。特别是在处理不确定数量的参数时,Python提供了两个非常有用的工具:*args和**kwargs。这两个特殊的参数使得函数能够接收任意数量的位置参数或关键字参数,从而极大地增加了函数的通用性和灵活性。*args用于......
  • D50【python 接口自动化学习】- python基础之类
    day50init方法学习日期:20241027学习目标:类--64init方法:如何为对象传递参数?学习笔记:魔术方法init方法classKlass(object):#定义初始化方法,类实例化时自动进行初始化def__init__(self,name,age):self.name=nameself.age=agede......
  • D51【python 接口自动化学习】- python基础之模块与标准库
    day51模块的导入学习日期:20241028学习目标:模块与标准库--66模块的导入:如何使用其他人编写好的代码功能?学习笔记模块的作用导入模块的方法#导入模块#方式一importos#获取当前的位置print(os.getcwd())#方式二fromosimportgetcwd#获取当前的位置pr......
  • 基于Python+Django的花卉销售商城|花店系统设计与实现
    ......
  • [分享]Python学习你看这一篇就够了!(四)
    本文你将看到四.面向对象编程8:面向对象编程基础类和对象的概念类(Class):类是一种抽象的数据类型,它是对具有相同属性和行为的一组对象的描述。可以将类看作是创建对象的蓝图或模板。例如,“汽车”是一个类,它定义了汽车共有的属性(如品牌、颜色、车轮数量等)和行为(如启动、......
  • Python输入位置的坐标(即经纬度),计算两点的距离结果保留两位
    可以使用haversine公式来计算两个坐标点之间的距离。以下是一个示例代码:importmathdefcalculate_distance(lat1,lon1,lat2,lon2):#将经纬度转换为弧度lon1=math.radians(lon1)lat1=math.radians(lat1)lon2=math.radians(lon2)lat2=m......
  • Python高手进阶:重写vs重载,你真的懂了吗?
    在面向对象编程中,“重写”与“重载”是两个核心概念,它们分别对应着如何扩展或改变现有功能的不同方式。尽管Python作为一种动态语言,对于这两种概念的支持与C++、Java等强类型静态语言有所不同,但这并不意味着它们在Python中不存在。01/ Python中的重写(Overwriting)重写,又......
  • 猴子请来的补丁——Python中的Monkey Patching
    猴子补丁(MonkeyPatching)在Python中是一种允许在运行时修改对象行为的技术。这种技术可以在不直接修改原始源代码的情况下,动态地改变或扩展程序的行为。猴子补丁的原理猴子补丁的核心原理是利用Python的动态特性,即在运行时修改对象(如函数、方法或类)的属性或行为。在Python......
  • Python从0到100(六十八):Python OpenCV-图像边缘检测及图像融合
    前言:零基础学Python:Python从0到100最新最全教程。想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Python爬虫、Web开发、计算机视觉、机器学习、神经网络以及人工智能相关知......