pandas数据科学库——matplotlib

这篇博客详细介绍了如何利用pandas库结合matplotlib进行数据可视化,包括在图形上添加注释、纯文字标注,区域填充,生成各种图形以及利用极坐标绘制图形的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在图形上注释

import matplotlib.pyplot as plt
import numpy as np
x = np.arange(-10,11,1)
plt.plot(x,x*x)
# xy代表注释箭头的坐标, xytext代表注释的坐标, frac代表箭头所占比例, headwidth代表箭头宽度, width代表箭身的宽度
plt.annotate('this is the bottom', xy=(0, 1), xytext = (0, 20), arrowprops = dict(facecolor = 'r', frac = 0.2, headwidth = 10, width = 10))

在图形上标注纯文字

import matplotlib.pyplot as plt
import numpy as np
x = np.arange(-10,11,1)
y = x*x
plt.plot(x,y)
# 标注文字  0,40代表文字的起始坐标
plt.text(-2,40,'function: y = x*x')
# 标注中加入Tex公式
plt.text(-2,40,r"$\alpha$")
# family代表字体, size代表字体大小, style代表字体样式(normal, italic, oblique, 后两个都是斜体), weight代表字体粗细(0-1000) or ('light', 'normal'...), bbox代表将注释放在一个框中
plt.text(-2,40,'function: y = x*x', family = 'serif', size = 20, color= 'r', style = 'italic', weight = 1000, bbox = dict(facecolor = 'r', alpha = 0.2))

区域填充

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 5*np.pi, 1000)
y1 = np.sin(x)
y2 = np.sin(2*x)
plt.fill(x, y1, 'b', alpha = 0.3)
plt.fill(x, y2, 'r', alpha = 0.3)

# object oriented利用函数fill_between
fig = pli.figure()
ax = plt.gca()
ax.plot(x, y1, x,y2, color = 'black')
# 填充两条线之间的部分填充颜色
ax.fill_between(x,y1,y2,where = y1>y2,facecolor = 'yellow', interpolate = True)
ax.fill_between(x,y1,y2,where = y1<y2,facecolor = 'green', interpolate = True)

生成图形

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.patches as mpatches

fig, ax = plt.subplots()
xy1 = np.array([0.2,0.2])
xy2 = np.array([0.2,0.8])
xy3 = np.array([0.8,0.2])
xy4 = np.array([0.8,0.8])
# 生成圆形
circle = mpatches.Circle(xy1, 0.1)
# 生成长方形
rect = mpatches.Rectangle(xy2, 0.2, 0.1, color = 'r')
# 生成多边形
polygon = mpatches.RegularPolygon(xy3, 5, 0.1)
# 生成椭圆
ellipse = mpatches.Ellipse(xy4, 0.4,0.2, color = 'y')

# 将图形放到坐标轴上
ax.add_patch(circle)
ax.add_patch(rect)
ax.add_patch(polygon)
ax.add_patch(ellipse)

# x,y轴坐标比例调成相同的
plt.axis('equal')
plt.grid()

极坐标

import numpy as np
import matplotlib as plt
r = np.arange(1,6,1)
theta = [0, np.pi/2, np.pi, 3*np.pi/2, 2*np.pi]
ax = plt.subplot(111, projection = 'polar')
ax.plot(theta, r, color = 'r', linewidth = 3)
ax.grid(True)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值