首页 > 解决方案 > Matplotlib - 从 DataFrame 绘制不均匀的步骤

问题描述

DataFrame在列中组织了 x 轴数据。但是,对于不存在的,列被省略了,所以步骤是不均匀的。例如:

   0.1  0.2  0.5 ...
0    1    4    7 ...
1    2    5    8 ... 
2    3    6    9 ...

我想用 x 轴绘制每一个,np.arange(0, max(df.columns), step=0.1)并结合这些图。有没有简单的方法来实现这一点matplotlib.pyplot

plt.plot(np.arange(0, max(df.columns), step=0.1), new_data)

任何帮助,将不胜感激。

标签: pythonpython-3.xpandasmatplotlib

解决方案


如果我理解正确,您的最终数据框应该如下所示:

   0.0  0.1  0.2  0.3  0.4  0.5
0  0.0    1    4  0.0  0.0    7
1  0.0    2    5  0.0  0.0    8
2  0.0    3    6  0.0  0.0    9

可以像这样生成(然后也绘制):

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

df = pd.DataFrame({0.1:[1,2,3],0.2:[4,5,6],0.5:[7,8,9]})

## make sure to actually include the maximum value (add one step)
#  or alternatively rather use np.linspace() with appropriate number of points
xs = np.arange(0, max(df.columns) +0.1, step=0.1)

df = df.reindex(columns=xs, fill_value=0.0)

plt.plot(df.T)
plt.show()

产生:

数据框的简单线图


推荐阅读