。。接下来我有一个不太酷的解决方案。。
创建一些示例数据:

import numpy as np
import pandas as pd
df_lines = pd.DataFrame({'x1': np.linspace(1,50,50)*2, 'x2': np.linspace(1,50,50)*2+1})

我的解决方案:
import matplotlib.pyplot as plt
def plot(dataframe):
    plt.figure()
    for item in dataframe.iterrows():
        x1 = int(item[1]['x1'])
        x2 = int(item[1]['x2'])
        plt.hlines(0,x1,x2)

plot(df_lines)

。提前谢谢。

最佳答案

Matplotlib在LineCollection中组织绘制线时,可以节省大量时间。。
这样的hlines需要一个线顶点数组作为输入,它需要形状LineCollection。所以在这种情况下(number of lines, points per line, 2)

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.collections import LineCollection

df_lines = pd.DataFrame({'x1': np.linspace(1,50,50)*2,
                         'x2': np.linspace(1,50,50)*2+1})

segs = np.zeros((len(df_lines), 2,2))
segs[:,:,0] = df_lines[["x1","x2"]].values


fig, ax = plt.subplots()

line_segments = LineCollection(segs)
ax.add_collection(line_segments)

ax.set_xlim(0,102)
ax.set_ylim(-1,1)
plt.show()

python - 一维多行 Pandas 图-LMLPHP

关于python - 一维多行 Pandas 图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46345100/

10-12 19:54