python – Seaborn:避免绘制缺失值(线图)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – Seaborn:避免绘制缺失值(线图),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1916字,纯文字阅读大概需要3分钟。
内容图文
![python – Seaborn:避免绘制缺失值(线图)](/upload/InfoBanner/zyjiaocheng/789/5cb843965fe147a4ad1e4ce33a8cccbd.jpg)
我想要一个线图来指示是否缺少一些数据,例如:
但是,下面的代码填充了缺失的数据,从而产生了一个可能具有误导性的图表:
import pandas as pd
import seaborn as sns
from matplotlib import pyplot as plt
# load csv
df=pd.read_csv('data.csv')
# plot a graph
g = sns.lineplot(x="Date", y="Data", data=df)
plt.show()
我应该在代码中更改什么以避免填充缺失值?
csv如下所示:
Date,Data
01-12-03,100
01-01-04,
01-02-04,
01-03-04,
01-04-04,
01-05-04,39
01-06-04,
01-07-04,
01-08-04,53
01-09-04,
01-10-04,
01-11-04,
01-12-04,
01-01-05,28
...
01-04-18,14
01-05-18,12
01-06-18,8
01-07-18,8
链接到.csv:
https://drive.google.com/file/d/1s-RJfAFYD90m4SrFDzIba7EQP4C-J0yO/view?usp=sharing
解决方法:
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
import seaborn as sns
# Make example data
s = """2018-01-01
2018-01-02,100
2018-01-03,105
2018-01-04
2018-01-05,95
2018-01-06,90
2018-01-07,80
2018-01-08
2018-01-09"""
df = pd.DataFrame([row.split(",") for row in s.split("\n")], columns=["Date", "Data"])
df = df.replace("", np.nan)
df["Date"] = pd.to_datetime(df["Date"])
df["Data"] = df["Data"].astype(float)
三种选择:
1)使用pandas或matplotlib.
2)如果你需要seaborn:不是它的用途,但对于像你这样的常规日期,你可以使用开箱即用的点图.
fig, ax = plt.subplots(figsize=(10, 5))
plot = sns.pointplot(
ax=ax,
data=df, x="Date", y="Data"
)
ax.set_xticklabels([])
plt.show()
3)如果你需要seaborn并且你需要lineplot:我已经查看了源代码,它看起来像lineplot在绘图之前从DataFrame中删除了nans.所以不幸的是,不可能正确地做到这一点.您可以使用一些高级hackery并使用hue参数将单独的部分放在单独的存储桶中.我们使用nans的出现对这些部分进行编号.
fig, ax = plt.subplots(figsize=(10, 5))
plot = sns.lineplot(
ax=ax,
data=df, x="Date", y="Data",
hue=df["Data"].isna().cumsum(), palette=["black"]*sum(df["Data"].isna()), legend=False, markers=True
)
ax.set_xticklabels([])
plt.show()
不幸的是,markers参数似乎目前已被打破,所以如果你想查看任何一方都有nans的日期,你需要修复它.
内容总结
以上是互联网集市为您收集整理的python – Seaborn:避免绘制缺失值(线图)全部内容,希望文章能够帮你解决python – Seaborn:避免绘制缺失值(线图)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。