首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图9在错误的地方显示离散的值。

图9在错误的地方显示离散的值。
EN

Stack Overflow用户
提问于 2021-12-10 00:54:18
回答 1查看 170关注 0票数 1

当列有一个特定的(离散的)值时,我试图制作一个图形来显示x轴上的时间和y轴上的点。

以下是一些示例数据:

代码语言:javascript
复制
dat = pd.DataFrame({
    'time': [0, 15, 30],
    'A': [np.nan, np.nan, 'A'],
    'B': ['B', 'B', np.nan],
})

现在,每当'A‘列显示字母'A’时,我都试图在'A‘列中显示一个点。我试过这个:

代码语言:javascript
复制
(gg.ggplot(dat, gg.aes('time', 'A'))
  + gg.geom_point()
  + gg.scale_y_discrete(name='', limits=list('A'))
)

但什么也没出现:链接到图

然后,我改变了情节的y-界限:

代码语言:javascript
复制
(gg.ggplot(dat, gg.aes('time'))
  + gg.geom_point(gg.aes(y='A'))
  + gg.scale_y_discrete(name='', limits=list('ABCD'))
)

现在,我想要出现的点:列'A‘显示值'A’在时间30,实际上,有一个点在那里。但非常奇怪的是,图中还显示了'D‘列中的两个点:链接到图

我玩了一些限制和列名,只要限制包括小于4个值,就不会出现任何点;在那之后,我想要显示的点,但是NaN值也会在限制中的最后一个字母的列中被绘制。

有人知道这是怎么回事吗?你能帮我做这件事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-15 11:54:20

您需要做的第一件事是重新构造dataframe,以便将变量和值堆叠起来,然后删除丢失的值。

代码语言:javascript
复制
import pandas as pd
import numpy as np
from plotnine import *

df = pd.DataFrame({
    'time': [0, 15, 30],
    'A': [np.nan, np.nan, 'A'],
    'B': ['B', 'B', np.nan],
})

df = pd.melt(df, id_vars=['time'], value_vars=['A', 'B'])
df.dropna(inplace=True)

p = (ggplot(df, aes(x='time', y='value'))
  + theme_classic()
  + geom_point()
  + labs(y=None)
)

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

https://stackoverflow.com/questions/70298519

复制
相关文章

相似问题

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