用python中的matplotlib.pyplot解答

1.在平面直角坐标系中绘制(0,0) 到(16, 30)的直线,颜色:红色,形状:*,添加轴标签:x,y。在同一坐标系中绘制数学函数y=sin(x)的曲线,颜色:绿色,形状:△。
2. 使用plt.subplot()创建子图,显示2个函数的图形y1=4x2-18x+9,y2=9/x。第一种方法放在上下2个子图中,第二种方法放在左右2个子图中。x的取值范围为0--14
3. 创建一个笛卡尔坐标系,使用不同的颜色和线型绘制函数的图像y12=8x, x2=-4y2 ,使用注释的形式标注这2个图像的交点坐标

Python可视化——matplotlib.pyplot绘图的基本参数详解

可以借鉴下
https://blog.csdn.net/qq_60471758/article/details/122752184

(1)

import matplotlib.pyplot as plt
import numpy as np

# 绘制直线
x1 = [0, 16]
y1 = [0, 30]
plt.plot(x1, y1, color='red', marker='*', label='line')

# 绘制函数曲线
x2 = np.linspace(0, 16, 1000)
y2 = np.sin(x2)
plt.plot(x2, y2, color='green', marker='4', label='sin(x)')

# 添加轴标签和图例
plt.xlabel('x')
plt.ylabel('y')
plt.legend()

# 显示图像
plt.show()

(2)

import matplotlib.pyplot as plt
import numpy as np

# 子图1:y1 = 4x^2 - 18x + 9
plt.subplot(2, 1, 1)
x1 = np.linspace(0, 14, 1000)
y1 = 4 * x1 ** 2 - 18 * x1 + 9
plt.plot(x1, y1, color='red')
plt.title('Subplot 1')

# 子图2:y2 = 9/x
plt.subplot(2, 1, 2)
x2 = np.linspace(0.1, 14, 1000)
y2 = 9 / x2
plt.plot(x2, y2, color='blue')
plt.title('Subplot 2')

# 显示图像
plt.show()

(3)

import matplotlib.pyplot as plt
import numpy as np

# 绘制函数曲线
x = np.linspace(-4, 4, 1000)
y = 8 * x ** 2

# 创建笛卡尔坐标系
fig, ax = plt.subplots()

# 绘制y1 = 8x^2
ax.plot(x, y, color='red', linestyle='--', label='y1=8x^2')

# 绘制y2 = -4
ax.plot(x, np.full_like(x, -4), color='blue', linestyle='-.', label='y2=-4')

# 添加轴标签和图例
plt.xlabel('x')
plt.ylabel('y')
plt.legend()

# 显示图像
plt.show()

参考网络

import numpy as np
import matplotlib.pyplot as plt

# 问题1
x1 = np.linspace(0, 16, 100)  # 生成016之间的100个点作为x轴数据
y1 = x1 * 2 + 30  # 直线的y轴数据
x2 = np.linspace(0, 16, 100)  # 生成016之间的100个点作为x轴数据
y2 = np.sin(x2)  # 函数y=sin(x)的y轴数据

plt.plot(x1, y1, color='red', marker='*', label='y=2x+30')  # 绘制直线
plt.plot(x2, y2, color='green', marker='^', label='y=sin(x)')  # 绘制函数曲线
plt.xlabel('x')  # 添加x轴标签
plt.ylabel('y')  # 添加y轴标签
plt.legend()  # 添加图例
plt.title('Line and Function Plot')  # 添加标题
plt.show()  # 显示图形

# 问题2
x = np.linspace(0, 14, 100)  # 生成014之间的100个点作为x轴数据
y1 = 4 * x**2 - 18 * x + 9  # 函数y1=4x^2-18x+9的y轴数据
y2 = 9 / x  # 函数y2=9/x的y轴数据

# 创建上下两个子图
plt.subplot(2, 1, 1)
plt.plot(x, y1)
plt.xlabel('x')
plt.ylabel('y1')
plt.title('y1=4x^2-18x+9')

plt.subplot(2, 1, 2)
plt.plot(x, y2)
plt.xlabel('x')
plt.ylabel('y2')
plt.title('y2=9/x')

plt.tight_layout()  # 调整子图布局
plt.show()  # 显示图形

# 创建左右两个子图
plt.subplot(1, 2, 1)
plt.plot(x, y1)
plt.xlabel('x')
plt.ylabel('y1')
plt.title('y1=4x^2-18x+9')

plt.subplot(1, 2, 2)
plt.plot(x, y2)
plt.xlabel('x')
plt.ylabel('y2')
plt.title('y2=9/x')

plt.tight_layout()  # 调整子图布局
plt.show()  # 显示图形

# 问题3
x = np.linspace(-10, 10, 100)  # 生成-1010之间的100个点作为x轴数据
y1 = 8 * x  # 函数y1=8x的y轴数据
y2 = -4 * np.sqrt(np.abs(x))  # 函数y2=-4|sqrt(x)|的y轴数据

# 绘制函数图像
plt.plot(x, y1, color='blue', linestyle='dashed', label='y1=8x')
plt.plot(x, y2, color='purple', linestyle='dotted', label='y2=-4|sqrt(x)|')

# 找到交点坐标
x_intersection =

以下答案由GPT-3.5大模型与博主波罗歌共同编写:
解答:

1.代码实现如下:

import numpy as np
import matplotlib.pyplot as plt

# 绘制直线
x = np.linspace(0, 16) # x的取值范围
y1 = x * 30/16  # 直线方程
plt.plot(x, y1, '*r')

# 绘制曲线
y2 = np.sin(x) # y=sin(x)
plt.plot(x, y2, 'g^')

# 添加坐标轴标签
plt.xlabel('x')
plt.ylabel('y')

# 显示图像
plt.show()

2.代码实现如下:

import numpy as np
import matplotlib.pyplot as plt

# 绘制函数1
x = np.arange(0, 143) # x的取值范围
y1 = 4*x**2 - 18*x + 9 # 函数1
plt.subplot(2,1,1) # 创建上下两个子图,当前为第一个子图
plt.plot(x, y1, 'b-')
plt.title('Functions y1 and y2')

# 绘制函数2
y2 = 9/x
plt.subplot(2,1,2) # 创建上下两个子图,当前为第二个子图
plt.plot(x, y2, 'g-')

# 绘制函数1,2交点
y3 = 8*x
y4 = -4*y2**2
x_inter = np.roots([4,-18,-9-8,0,4]) # 解方程找到交点横坐标
y_inter = 8*x_inter # 代入函数1
plt.subplot(1,2,1) # 创建左右两个子图,当前为第一个子图
plt.plot(x, y3, 'r--')
plt.plot(-y4/4, y2, 'b--')
plt.annotate(f'({x_inter[0]:.4f}, {y_inter[0]:.4f})', 
             xy=(x_inter[0], y_inter[0]), xytext=(-40, 40), 
             textcoords='offset points', fontsize=8,
             arrowprops=dict(arrowstyle='->'))
plt.annotate(f'({x_inter[1]:.4f}, {y_inter[1]:.4f})', 
             xy=(x_inter[1], y_inter[1]), xytext=(20, -50), 
             textcoords='offset points', fontsize=8,
             arrowprops=dict(arrowstyle='->'))

# 添加坐标轴标签
plt.subplot(2,1,1)
plt.ylabel('y1')
plt.subplot(2,1,2)
plt.xlabel('x')
plt.ylabel('y2')

# 显示图像
plt.show()

解释:

第一步:导入所需库

import numpy as np
import matplotlib.pyplot as plt

第二步:绘制直线和曲线

# 绘制直线
x = np.linspace(0, 16) # x的取值范围
y1 = x * 30/16  # 直线方程
plt.plot(x, y1, '*r')

# 绘制曲线
y2 = np.sin(x) # y=sin(x)
plt.plot(x, y2, 'g^')

第三步:添加坐标轴标签

plt.xlabel('x')
plt.ylabel('y')

第四步:绘制子图

# 绘制函数1
x = np.arange(0, 143) # x的取值范围
y1 = 4*x**2 - 18*x + 9 # 函数1
plt.subplot(2,1,1) # 创建上下两个子图,当前为第一个子图
plt.plot(x, y1, 'b-')
plt.title('Functions y1 and y2')

# 绘制函数2
y2 = 9/x
plt.subplot(2,1,2) # 创建上下两个子图,当前为第二个子图
plt.plot(x, y2, 'g-')

第五步:绘制交点和注释

# 绘制函数1,2交点
y3 = 8*x
y4 = -4*y2**2
x_inter = np.roots([4,-18,-9-8,0,4]) # 解方程找到交点横坐标
y_inter = 8*x_inter # 代入函数1
plt.subplot(1,2,1) # 创建左右两个子图,当前为第一个子图
plt.plot(x, y3, 'r--')
plt.plot(-y4/4, y2, 'b--')
plt.annotate(f'({x_inter[0]:.4f}, {y_inter[0]:.4f})', 
             xy=(x_inter[0], y_inter[0]), xytext=(-40, 40), 
             textcoords='offset points', fontsize=8,
             arrowprops=dict(arrowstyle='->'))
plt.annotate(f'({x_inter[1]:.4f}, {y_inter[1]:.4f})', 
             xy=(x_inter[1], y_inter[1]), xytext=(20, -50), 
             textcoords='offset points', fontsize=8,
             arrowprops=dict(arrowstyle='->'))

第六步:添加坐标轴标签

plt.subplot(2,1,1)
plt.ylabel('y1')
plt.subplot(2,1,2)
plt.xlabel('x')
plt.ylabel('y2')

第七步:显示图像

plt.show()

如果我的回答解决了您的问题,请采纳!

引用chatGPT作答,
1.在平面直角坐标系中绘制直线和曲线:

import numpy as np
import matplotlib.pyplot as plt

# 绘制直线和曲线
x = np.linspace(0, 16, 1000)
y1 = x * 30 / 16   # 直线方程
y2 = np.sin(x)     # 曲线方程

plt.plot(x, y1, '*r', label='Line')
plt.plot(x, y2, '^g', label='Curve')
plt.xlabel('x')
plt.ylabel('y')
plt.legend()
plt.show()

2.使用plt.subplot()创建子图:

import numpy as np
import matplotlib.pyplot as plt

# 定义函数
def func1(x):
    return 4 * x**2 - 18 * x + 9

def func2(x):
    return 9 / x

# 创建上下两个子图
plt.subplot(2, 1, 1)
x = np.linspace(0, 14, 1000)
y1 = func1(x)
plt.plot(x, y1)
plt.title('Function 1')
plt.xlabel('x')
plt.ylabel('y')

plt.subplot(2, 1, 2)
y2 = func2(x)
plt.plot(x, y2)
plt.title('Function 2')
plt.xlabel('x')
plt.ylabel('y')

plt.show()

# 创建左右两个子图
plt.subplot(1, 2, 1)
x = np.linspace(0, 14, 1000)
y1 = func1(x)
plt.plot(x, y1)
plt.title('Function 1')
plt.xlabel('x')
plt.ylabel('y')

plt.subplot(1, 2, 2)
y2 = func2(x)
plt.plot(x, y2)
plt.title('Function 2')
plt.xlabel('x')
plt.ylabel('y')

plt.show()

3.创建笛卡尔坐标系并标注交点:

import numpy as np
import matplotlib.pyplot as plt

# 定义函数
def func1(x):
    return 8 * x

def func2(y):
    return np.sqrt(-y**2 / 4)

# 绘制图像
x = np.linspace(-5, 5, 1000)
y1 = func1(x)
y2 = func2(x)
y3 = -y2
plt.plot(x, y1, 'b-', label='y1 = 8x')
plt.plot(x, y2, 'r--', label='y2 = -4x^2')
plt.plot(x, y3, 'r--')
plt.xlabel('x')
plt.ylabel('y')
plt.legend()

# 标注交点
x0 = 0
y0 = func1(x0)
plt.annotate('(%s, %s)' % (x0, y0), xy=(x0, y0), xytext=(-40, 40), textcoords='offset points', fontsize=10, arrowprops=dict(arrowstyle='->', connectionstyle='arc3,rad=.2'))

plt.show()
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^