问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

在线性坐标系中绘制二次函数图象

创作时间:
作者:
@小白创作中心

在线性坐标系中绘制二次函数图象

引用
1
来源
1.
https://www.cnblogs.com/green-cnblogs/p/18439547

本文介绍了如何使用Matplotlib在Python中绘制二次函数的图像。通过具体的代码示例,展示了如何绘制三个不同类型的二次函数图像(Δ>0、Δ=0、Δ<0),并解释了代码的关键部分。文章内容完整,包含了必要的代码和图像展示,适合对Python绘图感兴趣的读者。

在绘图前,需要准备一个能放下 1x3 个图像的特定大小的区域。分别配置三个坐标系,其中内容请参考在线性坐标系中绘制一次函数图像。绘图时,用蓝色、红色和黄色实线分别绘制 y = 1/3 * x^2 - 4*x 、y = -1/4 * x^2 + 3/2 * x - 9/4、 y = x^2 + 12 * x + 39 这三个二次函数图像,并附上数学表达式说明。最后调整绘图区域大小以填充整个图像区域。

下面是具体的代码实现:

import numpy as np
import matplotlib.pyplot as plt

def configure_axes(ax, title, xlimit, ylimit, xmajorunit=5, xminorunit=1, ymajorunit=5, yminorunit=1):
    ax.set_title(title)
    ax.set_xlim(-xlimit, xlimit)
    ax.set_ylim(-ylimit, ylimit)
    ax.set_xticks(np.arange(-xlimit, xlimit+1, xmajorunit))
    ax.set_xticks(np.arange(-xlimit, xlimit+1, xminorunit), minor=True)
    ax.set_yticks(np.arange(-ylimit, ylimit+1, ymajorunit))
    ax.set_yticks(np.arange(-ylimit, ylimit+1, yminorunit), minor=True)
    ax.grid(which='both')
    ax.axhline(y=0, color='k')
    ax.axvline(x=0, color='k')

def main():
    fig, axs = plt.subplots(1, 3, figsize=(14,4.5))
    axs[0] = configure_axes(axs[0], 'Quadratic Function\t\t\t' + r'$\Delta > 0$', 18, 18, 10, 2, 10, 2)
    x = np.linspace(-2.5,14.5,100)
    y = 1/3*x**2 - 4*x
    axs[0].plot(x, y, color='b')
    axs[0].text(-4, 4,  r'$y = \frac{1}{3}x^2 - 4x$',  color='b', horizontalalignment='right',  verticalalignment='bottom')

    axs[1] = configure_axes(axs[1], '\t\t\t\t\t\t\t' + r'$\Delta = 0$', 18, 18, 10, 2, 10, 2)
    x = np.linspace(-5,11,100)
    y = -1/4*x**2 + 3/2*x - 9/4
    axs[1].plot(x, y, color='r')
    axs[1].text(-6, 4,  r'$y = -\frac{1}{4}x^2 + \frac{3}{2}x - \frac{9}{4}$',  color='r', horizontalalignment='right',  verticalalignment='bottom')

    axs[2] = configure_axes(axs[2], '\t\t\t\t\t\t\t' + r'$\Delta < 0$', 18, 18, 10, 2, 10, 2)
    x = np.linspace(-9.8,-2.2,100)
    y = x**2 + 12*x + 39
    axs[2].plot(x, y, color='y')
    axs[2].text(-10, 4,  r'$y = x^2 + 12x + 39$',  color='y', horizontalalignment='right',  verticalalignment='bottom')

    fig.tight_layout()

if __name__ == '__main__':
    main()

此代码可在 Matplotlib 3.3.4,Python 3.6.8 环境中运行。完整的代码请参考[gitee] cnblogs/18439547。更多例子请参考函数图像、数据可视化和Matplotlib Gallery。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号