首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >海量数据的散点图

海量数据的散点图
EN

Stack Overflow用户
提问于 2017-07-14 06:55:48
回答 1查看 11.9K关注 0票数 6

假设我有一个很大的数据集(8500000X50)。我想散布图X(日期)和Y(在某一天进行的测量)。

我只能得到这样的信息:

代码语言:javascript
复制
data_X = data['date_local']
data_Y = data['arithmetic_mean']
data_Y = data_Y.round(1)
data_Y = data_Y.astype(int)
data_X = data_X.astype(int)
sns.regplot(data_X, data_Y, data=data)
plt.show()

根据我在Stackoverflow上发现的一些“相同”的问题,我可以将我的数据打乱,或者取1000个随机值并将它们绘制出来。但是如何以这样的方式实现它,使得每个X(进行特定测量的日期)将对应于实际的(Y测量)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-14 09:32:47

首先,回答你的问题:

你应该使用pandas.DataFrame.sample从你的dateframe中获取样本,然后使用regplot,下面是一个使用随机数据的小例子:

代码语言:javascript
复制
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
from datetime import datetime
import numpy as np
import pandas as pd
import seaborn as sns

dates = pd.date_range('20080101', periods=10000, freq="D")
df = pd.DataFrame({"dates": dates, "data": np.random.randn(10000)})
   
dfSample = df.sample(1000) # This is the importante line
xdataSample, ydataSample = dfSample["dates"], dfSample["data"]

sns.regplot(x=mdates.date2num(xdataSample.astype(datetime)), y=ydataSample) 
plt.show()

在datetime上,由于datetime的类型,我在X数据中执行了一次转换,请注意,根据数据的不同,这肯定应该是而不是

所以,不是像这样:

你会得到类似这样的东西:

现在,给出一个建议:

使用docs中的sns.jointplot,它有一个kind参数

十六进制种类:{“

”|“reg”|“resid”|“kde”|“十六进制”},选填

这是一种要画的情节。

我们在这里创建的是与matplotlib的hist2d类似的功能,它使用整个数据集创建类似于热图的东西。使用随机数据的示例:

代码语言:javascript
复制
dates = pd.date_range('20080101', periods=10000, freq="D")
df = pd.DataFrame({"dates": dates, "data": np.random.randn(10000)})

xdata, ydata = df["dates"], df["data"]
sns.jointplot(x=mdates.date2num(xdata.astype(datetime)), y=ydata, kind="kde")

plt.show()

这将产生此图像,该图像还可以很好地查看沿所需轴的分布:

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45092124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档