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)
上一篇: Python爬虫:爬取抽屉网