首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使面积图覆盖其下方的所有区域?

如何使面积图覆盖其下方的所有区域?
EN

Stack Overflow用户
提问于 2020-07-18 21:33:59
回答 1查看 41关注 0票数 0

我试着用pandas-bokeh包做一个面积图,代码如下:

代码语言:javascript
复制
import pandas as pd
import numpy as np
import pandas_bokeh

df = pd.read_excel('D:/Coding Practice/data/data_corona_usa.xlsx')
df = df.iloc[::-1].reset_index()
df['Cummulative Cases'] = df['cases'].cumsum()
df['date'] = df['dateRep'].dt.strftime('%D')


#to make it appear in your notebook
pandas_bokeh.output_notebook()

df.plot_bokeh(
    kind='area',
    x= 'dateRep',
    y='Cummulative Cases',
    xlabel = 'Date',
    ylabel = 'Cummulative Cases',
    hovertool_string= r'''<h1> Date: @{date} </h1>
        <h2> Cummulative Cases: @{Cummulative Cases} </h2>''',
    title='US Corona Cases (cummulative)',
    hovertool=True,
    fontsize_title=18,
    logy=True,
    stacked=False,
    legend='top_left'
)

但得到的面积图就像这张图。

strange area chart

图表没有覆盖该未知对角线下的区域。这个结果的出现是因为代码"logy = True“使得ytick使用了对数刻度。如果我删除这一行代码,面积图将显示为正常。

normal area chart

即便如此,我还是希望面积图在y轴上使用对数刻度。我怎么才能修复它?

EN

回答 1

Stack Overflow用户

发布于 2020-08-07 19:47:19

首先,你必须明白你的最小例子并不是一个工作的例子。您的本地路径使重现行为变得非常困难,因为没有人能够像您一样加载数据。

其次,我必须告诉你,如果你想使用pandas-bokeh,你的问题是无法解决的。这是因为面积图在这个模块中是用零初始化的,如果你使用一个对数y轴,零就不存在了,。原因是没有定义log(0)。您可以看到的是默认行为。

如果您愿意切换到bokeh本身,欢迎您遵循这个最小的示例:

下面是一些示例数据:

代码语言:javascript
复制
import pandas as pd
df = pd.DataFrame({'cases':range(100)}))
df['Cummulative Cases'] = df['cases'].cumsum()
df 

现在我们想用简明易懂的语言重现你的观察结果。

代码语言:javascript
复制
from bokeh.io import show, output_notebook
from bokeh.plotting import figure
from bokeh.models import ColumnDataSource
output_notebook()

p = figure(x_range=(0, 100), y_range=(0.1,100000),y_axis_type="log")
source = ColumnDataSource(dict(x=df['cases'].values, 
                               y1=df['Cummulative Cases'].values, 
                               y2=[0]*df.shape[0]
                              )
                          )
p.varea(x='x', y1='y1', y2='y2', source=source)
show(p)

如果你设置了不同于零的基线,可能会像你想要的这个y2=[0.01]*df.shape[0]

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

https://stackoverflow.com/questions/62969185

复制
相关文章

相似问题

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