matplotlib 叠加两个x轴重合的图形[重复]

gpnt7bae  于 2023-01-26  发布在  其他
关注(0)|答案(2)|浏览(123)
    • 此问题在此处已有答案**:

How to plot different groups of data from a dataframe into a single figure(5个答案)
plot multiple pandas dataframes in one graph(3个答案)
7小时前关闭。
我想在x轴对应的地方叠加两个图形。第一个是在整个范围内,而第二个是在一个子区间上。

test1 = pd.DataFrame(
    {
        'x': [1,2,3,4,5,6,7,8,9],
        'y': [0,1,1,2,1,2,1,1,1]
    }
)

test2 = pd.DataFrame(
    {
        'x': [1,2,4,5,8],
        'y': [3,2,2,3,3]
    }
)
xa9qqrwz

xa9qqrwz1#

您可以在matplotlib中使用xlim()函数。
示例:

import matplotlib.pyplot as plt
import pandas as pd

test1 = pd.DataFrame(
    {
        'x': [1,2,3,4,5,6,7,8,9],
        'y': [0,1,1,2,1,2,1,1,1]
    }
)

test2 = pd.DataFrame(
    {
        'x': [1,2,4,5,8],
        'y': [3,2,2,3,3]
    }
)

plt.plot(test1['x'], test1['y'], 'b-', label='test1')
plt.plot(test2['x'], test2['y'], 'r-', label='test2')
plt.xlim(min(test1['x']), max(test1['x']))
plt.legend()
plt.show()

结果:https://i.stack.imgur.com/bz41W.png

vwkv1x7d

vwkv1x7d2#

IIUC,您可以将第一个中的“y”值添加到第二个中发生冲突的“y”值,其中冲突超过“x”值:

plt.plot(test1["x"], test1["y"].add(test1["x"].map(test1.set_index("x")["y"])))

得到

相关问题