Python绘制简单的曲线图·

这篇博客介绍了如何使用Python的matplotlib库绘制简单的曲线图以及在同一图表上绘制多条曲线。首先,展示了绘制一条曲线的基本步骤,包括设置X轴和Y轴的数据,定义图的大小,添加坐标轴标签和标题。然后,通过增加Y2轴的数据,演示了在同一图上绘制两条曲线的方法。最终,代码成功生成了两条不同颜色和样式的曲线图。

1.利用Python绘制一个简单的曲线图

代码如下:

import matplotlib.pyplot as plt
import numpy as np

X=np.linspace(0,10,100)  # X轴坐标数据
Y =X*X                   # Y轴坐标数据
# plt.plot(X,Y,lable="$sin(X)$",color="red",linewidth=2)

plt.figure(figsize=(8,6))  # 定义图的大小
plt.xlabel("time(s)")     # X轴标签
plt.ylabel("Volt")        # Y轴坐标标签
plt.title("Example")      #  曲线图的标题

plt.plot(X,Y)            # 绘制曲线图
#在ipython的交互环境中需要这句话才能显示出来
plt.show()

曲线图效果如下:
在这里插入图片描述

2.当我们需要在同一个曲线图上面绘制两条曲线的

代码:

# ############## 根据对txt文件 写入、读取数据,绘制曲线图##############
import matplotlib.pyplot as plt
import numpy as np

X=np.linspace(0,10,100)
Y1 = X*X
Y2 = X + 10
# plt.plot(X,Y,lable="$sin(X)$",color="red",linewidth=2)

plt.figure(figsize=(8,6))  # 定义图的大小
plt.xlabel("time(s)")
plt.ylabel("Volt")
plt.title("Example")

plt.plot(X,Y1)
plt.plot(X,Y2)
#在ipython的交互环境中需要这句话才能显示出来
plt.show()

曲线图效果:
在这里插入图片描述

<think>好的,我现在需要回答用户关于如何用Python绘制散点曲线图的问题,使用matplotlib和seaborn的示例。首先,我得理解用户的需求。散点曲线图可能是指同时展示散点图和曲线图的组合图表,或者是分别绘制这两种图表。用户可能想在同一图表中显示数据点(散点)和拟合曲线或趋势线,或者分开显示两种图表。需要确认这一点,但根据常见的需求,通常是组合图。 接下来,我需要回忆matplotlib和seaborn的相关功能。Matplotlib中,可以使用plt.scatter绘制散点图,plt.plot绘制曲线图。而Seaborn则可能用sns.scatterplot和sns.lineplot来分别绘制,或者结合使用。例如,在同一个图上先散点,再叠加曲线。 然后,我需要查找相关的引用内容。用户提供了四个引用,其中引用1、3、4涉及matplotlib和seaborn的示例。引用1是散点图的例子,引用3是折线图的例子,引用4是Seaborn的散点图。这些可以作为代码示例的基础。需要确保代码正确,符合用户的要求,并且正确引用这些来源。 接下来,组织回答结构。用户需要方法和代码示例,所以应该分步骤说明,先介绍使用matplotlib的方法,再介绍Seaborn的方法。每个步骤中提供代码示例,并解释代码的关键部分。同时,需要确保代码的语法正确,比如正确导入库,使用正确的函数参数。 在编写代码时,要注意数据生成。例如,可以生成模拟数据,比如使用numpy生成x值,然后计算y值作为正弦函数或其他函数,再加上一些噪声作为散点数据。或者,使用真实数据集的一部分,如iris数据集,但需要确保示例简单易懂。 另外,需要注意图表的美化,比如添加标题、坐标轴标签、图例、网格等,这些在引用中的示例都有体现,需要参考这些来完善代码。 对于Seaborn部分,可能需要结合sns.scatterplot和sns.lineplot,或者在同一个图上叠加两种图表。同时,可以展示如何用Seaborn的风格来美化图表,比如设置主题或调色板。 最后,生成相关问题,可能需要考虑用户可能进一步的问题,比如如何添加趋势线、如何保存图表、如何处理真实数据等。需要确保问题相关且有帮助。 在检查过程中,要确保所有数学公式和代码块格式正确,如行内公式用$...$,独立公式用$$...$$。同时,引用标识要正确对应,比如引用1对应matplotlib的散点图示例,引用3对应折线图,引用4对应Seaborn的散点图。 可能需要注意的问题:用户是否希望在同一图表中同时显示散点和曲线,或者分开。根据常见情况,组合图更常见,所以示例应该展示如何在同一图中叠加两种图形。需要确认代码的正确性,比如数据是否一致,例如使用相同的x和y数据,或者散点是原始数据,曲线是拟合后的结果。 总结步骤: 1. 使用matplotlib绘制散点曲线图:生成数据,绘制散点,绘制曲线,添加装饰。 2. 使用Seaborn绘制:加载数据或生成数据,使用sns.scatterplot和sns.lineplot,或者结合plt.plot。 3. 结合两者优势,比如用Seaborn美化样式,再用matplotlib添加曲线。 4. 提供相关问题,如美化图表、处理真实数据、组合其他图表类型等。 现在需要确保每个代码示例正确,并正确引用来源。例如,matplotlib部分引用1和3,Seaborn部分引用4。同时,解释代码时要简明,指出关键函数和参数的作用。</think>### 使用Python绘制散点曲线图的方法及代码示例 #### 1. 使用Matplotlib绘制散点曲线图 Matplotlib可通过组合`plt.scatter`(散点图)和`plt.plot`(曲线图)实现散点曲线图。以下示例生成模拟数据并展示两者的组合: ```python import matplotlib.pyplot as plt import numpy as np # 生成数据:x为0到10的等差数列,y为sin(x)加上随机噪声 x = np.linspace(0, 10, 50) y = np.sin(x) + np.random.randn(50) * 0.2 # 添加噪声模拟散点 # 绘制散点图 plt.figure(figsize=(8, 6)) plt.scatter(x, y, color='red', label='Scatter Data', alpha=0.6) # 绘制平滑曲线(基于原始函数) x_smooth = np.linspace(0, 10, 200) y_smooth = np.sin(x_smooth) plt.plot(x_smooth, y_smooth, 'b-', linewidth=2, label='Sin Curve') # 添加图表装饰 plt.title('Scatter and Curve Plot (Matplotlib)') plt.xlabel('X-axis') plt.ylabel('Y-axis') plt.legend() plt.grid(True) plt.show() ``` **关键说明**: - `plt.scatter`绘制散点时,通过`alpha`参数设置透明度以避免重叠点遮挡。 - `plt.plot`绘制平滑曲线时,使用更密集的数据点使曲线连贯。 - 引用[1][3]中的基础图表装饰方法(标题、标签、网格)被沿用。 #### 2. 使用Seaborn结合Matplotlib绘制 Seaborn可优化图表样式,结合Matplotlib的函数绘制更美观的散点曲线图: ```python import seaborn as sns import matplotlib.pyplot as plt import numpy as np # 设置Seaborn主题 sns.set_theme(style="darkgrid") # 生成数据(带噪声的余弦曲线) x = np.linspace(0, 10, 50) y = np.cos(x) + np.random.normal(0, 0.1, 50) # 绘制散点图 plt.figure(figsize=(8, 6)) sns.scatterplot(x=x, y=y, color='green', label='Noisy Data', s=70) # 绘制拟合曲线(使用多项式拟合) coefficients = np.polyfit(x, y, deg=5) # 5次多项式拟合 x_fit = np.linspace(0, 10, 200) y_fit = np.polyval(coefficients, x_fit) plt.plot(x_fit, y_fit, 'orange', linestyle='--', label='Fitted Curve') # 添加装饰 plt.title('Scatter with Fitted Curve (Seaborn)') plt.xlabel('X Values') plt.ylabel('Y Values') plt.legend() plt.show() ``` **关键说明**: - `sns.set_theme(style="darkgrid")`调用Seaborn的深色网格主题提升视觉效果[^4]。 - 使用`np.polyfit`对散点数据进行多项式拟合,生成平滑曲线。 - 引用[4]中的Seaborn数据可视化方法被扩展应用。 #### 3. 进阶应用:真实数据集示例 以鸢尾花数据集为例,展示花瓣长度与宽度的散点分布及核密度估计曲线: ```python import seaborn as sns import matplotlib.pyplot as plt # 加载数据 iris = sns.load_dataset('iris') # 绘制散点图(花瓣长度 vs 花瓣宽度) sns.scatterplot(x='petal_length', y='petal_width', data=iris, hue='species', palette='viridis') # 添加核密度估计曲线 sns.kdeplot(x='petal_length', y='petal_width', data=iris, levels=5, color='black', alpha=0.5) # 图表装饰 plt.title('Iris Petal Dimensions with Density Contours') plt.xlabel('Petal Length (cm)') plt.ylabel('Petal Width (cm)') plt.legend(title='Species') plt.show() ``` **关键说明**: - `sns.kdeplot`绘制多维核密度估计曲线,反映数据分布密度[^4]。 - `palette='viridis'`优化颜色映射,提升分类辨识度。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值