使用matplotlib使用不同的X轴和Y轴进行绘图

2024-03-29 12:23:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在使用Matplotlib将不同的数据集绘制到同一个图中(比如比较线图),每个数据集都有不同的x轴和y轴值

例如,数据集将如下所示:

x =  [['12.63', '13.50', '14.15', '15.18', '16.04', '17.28', '18.56', '19.70',
       '20.90', '22.21', '23.25', '24.13'],
      ['13.39', '14.10', '15.05', '16.20', '17.55', '18.43', '19.75', '21.29',
       '22.78', '24.00', '24.85', '24.81'],
      ['13.02', '13.86', '14.82', '15.80', '16.90', '17.99', '19.24', '20.79',
       '22.30', '23.43', '24.38', '24.68']]

y = [['-15.09', '-15.19', '-15.23', '-15.32', '-15.07', '-15.11', '-15.04',
      '-15.08', '-14.97', '-14.98', '-14.89', '-15.12'],
     ['-15.91', '-15.89', '-15.90', '-15.96', '-15.55', '-15.58', '-15.51',
      '-15.48', '-15.42', '-15.40', '-15.85', '-16.64'],
     ['-15.71', '-15.75', '-15.83', '-15.83', '-15.54', '-15.55', '-15.53',
      '-15.47', '-15.41', '-15.33', '-15.43', '-15.97']]

我如何制作如下示例所示的对比图(参考谷歌)

enter image description here


Tags: 数据示例matplotlib绘制线图集将轴值
1条回答
网友
1楼 · 发布于 2024-03-29 12:23:56

首先,您的数据是字符串。你应该把它们转换成浮点数

然后,最简单的方法是多次调用plot函数,每行调用一次:

x =  [['12.63', '13.50', '14.15', '15.18', '16.04', '17.28', '18.56', '19.70',
       '20.90', '22.21', '23.25', '24.13'],
      ['13.39', '14.10', '15.05', '16.20', '17.55', '18.43', '19.75', '21.29',
       '22.78', '24.00', '24.85', '24.81'],
      ['13.02', '13.86', '14.82', '15.80', '16.90', '17.99', '19.24', '20.79',
       '22.30', '23.43', '24.38', '24.68']]

y = [['-15.09', '-15.19', '-15.23', '-15.32', '-15.07', '-15.11', '-15.04',
      '-15.08', '-14.97', '-14.98', '-14.89', '-15.12'],
     ['-15.91', '-15.89', '-15.90', '-15.96', '-15.55', '-15.58', '-15.51',
      '-15.48', '-15.42', '-15.40', '-15.85', '-16.64'],
     ['-15.71', '-15.75', '-15.83', '-15.83', '-15.54', '-15.55', '-15.53',
      '-15.47', '-15.41', '-15.33', '-15.43', '-15.97']]

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.plot([float(n) for n in x[0]], [float(n) for n in y[0]], color='tab:blue')
ax.plot([float(n) for n in x[1]], [float(n) for n in y[1]], color='tab:orange')
ax.plot([float(n) for n in x[2]], [float(n) for n in y[2]], color='tab:red')
plt.show()

相关问题 更多 >