Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无直线和错误条的熊猫线图(来自带切割的groupby)_Python_Pandas_Pandas Groupby - Fatal编程技术网

Python 无直线和错误条的熊猫线图(来自带切割的groupby)

Python 无直线和错误条的熊猫线图(来自带切割的groupby),python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,试图将错误条添加到pandas线图似乎否定了以前作为参数提供的信息。特别是,它似乎忽略了不包括行的选择。我要做的是创建一个没有任何线条的线条图,但包括错误条。见下文MWE: import pandas as pd import numpy as np from datetime import datetime as dt dates = np.array([dt(2012, 9, 27, 8, 52, 21), dt(2012, 10, 6, 5, 4, 15),

试图将错误条添加到pandas线图似乎否定了以前作为参数提供的信息。特别是,它似乎忽略了不包括行的选择。我要做的是创建一个没有任何线条的线条图,但包括错误条。见下文MWE:

import pandas as pd
import numpy as np
from datetime import datetime as dt

dates = np.array([dt(2012, 9, 27, 8, 52, 21),
       dt(2012, 10, 6, 5, 4, 15),
       dt(2012, 10, 7, 4, 53, 4),
       dt(2012, 10, 9, 7, 21, 18),
       dt(2012, 10, 10, 5, 4, 8),
       dt(2012, 10, 11, 4, 58, 43),
       dt(2012, 10, 12, 11, 15, 25),
       dt(2012, 10, 13, 10, 45, 23),
       dt(2012, 10, 20, 6, 0, 25),
       dt(2012, 10, 22, 7, 41, 38)])

values = np.array([5.61006523, 5.39632183, 5.49317193, 5.42327983, 5.4623386, 
                   5.42444747, 5.60362929, 5.57041331, 5.34893575, 5.48222005])

date_bins = np.array([dt(2012, 9, 29, 14),
                      dt(2012, 10, 10, 14),
                      dt(2012, 10, 14, 14),
                      dt(2012, 10, 23, 14)])

df1 = pd.DataFrame({'date':dates, 'value': values})
df2 = pd.DataFrame({'bin_dates':date_bins})

lookup = df1.groupby(pd.cut(df1['date'], df2['bin_dates'])).agg({'value':['mean','std']})
lookup.columns = ['mean_val','std_val']

lookup[['mean_val']].plot(kind='line',style='o',yerr=lookup[['std_val']].values.T)
带有错误条的结果(忽略糟糕的x轴标记):

无错误条的结果:


有人知道这方面的解决方法吗?我遇到的最近的一个解决方法是将线路保持在适当的位置。此外,它还没有得到答复。有什么想法吗

在不使用
matplotlib
的情况下,我想到的解决方案是使用从
df.plot()返回的axis实例
ax
删除line对象


在Sheldore的基础上,我们可以通过循环返回颜色,并在没有错误条的情况下重新填充数据,将数据点添加回顶部

ax = lookup[['mean_val']].plot(kind='line',style='o',yerr=lookup[['std_val']].values.T,legend=False)
ax.lines[0].remove()
ax.set_prop_cycle(None)
lookup[['mean_val']].plot(kind='line',style='o',ax=ax)
导致:

您是否只想使用熊猫?或者matplotlib也可以工作?
ax = lookup[['mean_val']].plot(kind='line',style='o',yerr=lookup[['std_val']].values.T,legend=False)
ax.lines[0].remove()
ax.set_prop_cycle(None)
lookup[['mean_val']].plot(kind='line',style='o',ax=ax)