欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

matplotlib-填充阴影部分

程序员文章站 2022-06-30 11:47:30
...
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.pyplot import Polygon
%matplotlib inline

def func(x):
    return -(x-2)*(x+3)+70

# x轴
x = np.linspace(-10,10)
#生成对应的y
y = func(x)

fig,ax = plt.subplots()
plt.plot(x,y,linewidth=3)

# 设置x轴上的显示
a = -7
b = 7
ax.set_xticks([a,b])
ax.set_xticklabels(['$a$','$b$'])  #$$为公式
 
#设置y轴上的显示
plt.ylim(0,100)  #限制y轴的坐标范围
ax.set_yticks([])

# 显示x y
plt.figtext(0.9,0.03,'$x$')
plt.figtext(0.1,0.9,'$y$')

# 获取a-b内的x和y
ix = np.linspace(a,b)
iy = func(ix)
# 将x y转为坐标对
ixy =zip(ix,iy)

# 生成阴影区域的坐标对
data = [(a,0)]+list(ixy)+[(b,0)]

# 生成阴影部分 其实是多边形
poly=Polygon(data,facecolor='0.9',edgecolor='0.1')
ax.add_patch(poly)

#显示函数
x_math=(a+b)/2
y_math=50

# horizontalalignment水平对齐
plt.text(x_math,y_math,r'$-(x-2)*(x+3)+70$',fontsize=10,horizontalalignment='center')

# 使用显示风格
plt.style.use('seaborn-paper')
plt.grid(True)

matplotlib-填充阴影部分

相关标签: 图表们