Matplotlib/Seaborn spaghetti plot显示无值

2024-09-29 19:24:25 发布

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

我有这样一个数据帧:

frame = {'Date' : ['3-Mar', '20-Mar', '20-Apr', '21-Apr', '29-Apr', '7-May', '30-May', '31-May', '7-Jun', '16-Jun',
        '1-Jul', '2-Jul', '10-Jul'],
        'Test_1' : [0.5840, 0.8159, 0.7789, 0.7665, 0.8510, 0.7428, 'None', 0.6820, 0.8714, 0.8902, 'mraky', 0.8289, 0.6877],
        'Test_2' : [0.6196, 0.8291, 0.7686, 0.7848, 0.9935, 0.7406, 'None', 0.6952, 0.6952, 0.6952, 'None', 0.8119, 'None']}

以及一些无值的附加测试数组。我想画个意大利面。在

问题是seaborn会在“日期”值/项目以字符串的形式(它们不是按时间顺序排列)或我将其更改为“日期格式”时,会对它们进行无序处理:

^{pr2}$

seaborn跳过了一些条目并做了如下操作: enter image description here

是的,我也许可以用相邻值的平均值来代替None值,但是还有其他方法吗?在

谢谢!在


Tags: 数据项目testnonedate数组seabornframe
1条回答
网友
1楼 · 发布于 2024-09-29 19:24:25

所以看起来你在尝试从两个不同的时间序列做一个常规的绘图。在

看起来DF里面也有非数值。在

如果你想要一条连续的线(如果你不清楚的话)你现在想在哪里画一条连续的线。
为了使解决方案简单,假设您不介意一条连续的线。在

所以,你需要做的是:

  • 仅选择具有数值的数据点

定义过滤器函数:

def is_digit (value):

    try:

        float(value)
        return True

    except:

        return False

将其应用于数据帧:

^{pr2}$

情节:

X1 = data_1.Date
y1 = data_1.Test_1

X2 = data_2.Date
y2 = data_2.Test_2

plt.plot(X1,y1)
plt.plot(X2,y2)

plt.xticks(rotation=45)

示例(也很难看)结果:

enter image description here

可能的改进:

制作一个偶数间隔的日期数组

相关问题 更多 >

    热门问题