在一个坐标轴中画两条折线对比

本文介绍如何在同一坐标轴上绘制两条折线图,对比个人与同桌从11岁到30岁每年交的男女朋友数量。通过折线图,可以清晰地分析两者数量的变化趋势。

在一个坐标轴中画两条折线对比

假设大家在30岁的时候,根据自己的实际情况,统计出来了你和同桌从11岁到30岁每年交的男女朋友的数量如列表a和b,请绘制出该数据的折线图,以便分析自己和同桌每年交男女朋友的数量走势
a = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
b = [1,0,3,1,2,2,2,3,1,1,1,1,1,2,1,1,2,3,2,2]

from matplotlib import pyplot as plt
import matplotlib

# 设置图片大小
fig = plt.figure(figsize=(14,8))

# 解决中文显示问题
font = {
   
   
    'family':'SimHei',
    'weight':'bold',
    'size':12
}
matplotlib.rc('font',**font)

a = [1,0,1,1,2,4
<think>我们使用matplotlib来绘制包含两条折线折线图。以下是步骤: 1. 导入必要的库(matplotlib.pyplot) 2. 准备数据:两个折线的横坐标和纵坐标数据 3. 创建图形和坐标轴 4. 绘制两条折线,并可以设置不同的颜色、线型、标记等以区分 5. 添加标题、坐标轴标签、图例等 6. 显示图形或保存为图片 参考引用[1]和[3]中的matplotlib示例,我们可以这样。 注意:如果需要,我们也可以为每个数据点添加数字标签(如引用[1]所示),但这里用户要求的是两条折线,所以我们可以选择是否添加标签。 下面是一个示例代码,绘制两条折线,并添加图例、标题等。</think>在 Python 中绘制包含两条折线折线图可以使用 Matplotlib 库实现。以下是详细步骤和代码示例: ### 完整代码示例 ```python import matplotlib.pyplot as plt import numpy as np # 1. 准备数据 x = np.array([1, 2, 3, 4, 5, 6]) # 横坐标数据 y1 = np.array([3, 5, 9, 8, 11, 6]) # 第一条折线数据 y2 = np.array([2, 7, 4, 10, 5, 9]) # 第二条折线数据 # 2. 创建布和坐标轴 plt.figure(figsize=(10, 6), dpi=100) # 设置图像大小和分辨率 # 3. 绘制两条折线 plt.plot(x, y1, label='折线1', # 图例标签 color='blue', # 线条颜色 marker='o', # 数据点标记 linestyle='-', # 实线 linewidth=2) # 线宽 plt.plot(x, y2, label='折线2', color='red', marker='s', # 方形标记 linestyle='--', # 虚线 linewidth=2) # 4. 添加数据点标签 for i, (a, b) in enumerate(zip(x, y1)): plt.text(a, b+0.3, f'{b}', ha='center', va='bottom', fontsize=10) for i, (a, b) in enumerate(zip(x, y2)): plt.text(a, b+0.3, f'{b}', ha='center', va='bottom', fontsize=10) # 5. 添加标题和标签 plt.title('双折线对比图', fontsize=14, pad=20) plt.xlabel('X轴标签', fontsize=12) plt.ylabel('Y轴标签', fontsize=12) # 6. 添加图例和网格 plt.legend(loc='best', fontsize=10) # 自动选择最佳位置 plt.grid(True, linestyle='--', alpha=0.7) # 添加网格线 # 7. 调整坐标轴范围 plt.xlim(0.5, 6.5) plt.ylim(0, 12) # 8. 显示和保存图像 plt.tight_layout() # 自动调整布局 plt.savefig('dual_line_plot.png', dpi=300) # 保存高分辨率图像 plt.show() ``` ### 关键参数说明: 1. **线条样式**: - `color`:线条颜色(如 'blue', 'red', '#FF5733') - `linestyle`:线型('-' 实线, '--' 虚线, ':' 点线, '-.' 点划线) - `linewidth`:线宽(默认1.5) - `marker`:数据点标记('o' 圆圈, 's' 方形, '^' 三角形, 'D' 菱形) 2. **数据标签**: ```python plt.text(x, y, '文本', ha='center', # 水平对齐(left/center/right) va='bottom', # 垂直对齐(top/center/bottom) fontsize=10) ``` 3. **图例设置**: - `loc`参数:'best'(自动最佳位置), 'upper right', 'lower left'等 - `fontsize`:图例字体大小 ### 进阶技巧: 1. **使用不同坐标轴**(当数据量级差异大时): ```python fig, ax1 = plt.subplots(figsize=(10,6)) ax1.plot(x, y1, 'b-', label='折线1') ax1.set_ylabel('折线1轴', color='b') ax2 = ax1.twinx() # 共享x轴创建第二个y轴 ax2.plot(x, y2, 'r--', label='折线2') ax2.set_ylabel('折线2轴', color='r') ``` 2. **添加数据标记**: ```python plt.plot(x, y1, marker='o', markersize=8, markerfacecolor='white', # 标记填充色 markeredgecolor='blue', # 标记边缘色 markeredgewidth=1.5) # 边缘线宽 ``` 3. **自定义样式**: ```python plt.style.use('seaborn-darkgrid') # 使用预定义样式 # 可用样式:'ggplot', 'bmh', 'dark_background', 'fivethirtyeight'等 ``` ### 输出效果: 代码将生成一个包含两条折线的专业图表: - 蓝色实线表示第一条数据 - 红色虚线表示第二条数据 - 每个数据点上方显示数值标签 - 包含网格线、图例和坐标轴标签 - 图片保存为高分辨率PNG文件(300dpi)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值