小编cge*_*cge的帖子

matplotlib中的日期刻度和旋转

我有一个问题试图让我的日期刻度在matplotlib中旋转.下面是一个小样本程序.如果我尝试在末尾旋转刻度线,则刻度线不会旋转.如果我尝试旋转注释'崩溃'下显示的刻度,则matplot lib崩溃.

只有当x值是日期时才会发生这种情况.如果我用调用中dates的变量替换变量,则调用在内部工作正常.tavail_plotxticks(rotation=70)avail_plot

有任何想法吗?

import numpy as np
import matplotlib.pyplot as plt
import datetime as dt

def avail_plot(ax, x, y, label, lcolor):
    ax.plot(x,y,'b')
    ax.set_ylabel(label, rotation='horizontal', color=lcolor)
    ax.get_yaxis().set_ticks([])

    #crashes
    #plt.xticks(rotation=70)

    ax2 = ax.twinx()
    ax2.plot(x, [1 for a in y], 'b')
    ax2.get_yaxis().set_ticks([])
    ax2.set_ylabel('testing')

f, axs = plt.subplots(2, sharex=True, sharey=True)
t = np.arange(0.01, 5, 1)
s1 = np.exp(t)
start = dt.datetime.now()
dates=[]
for val in t:
    next_val = start + dt.timedelta(0,val)
    dates.append(next_val)
    start = next_val

avail_plot(axs[0], dates, …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

141
推荐指数
6
解决办法
20万
查看次数

在matplotlib中显示毫秒数

我正在使用matplotlib以hh:mm:ss.ms格式绘制数据作为时间的函数,其中ms是毫秒.但是,我没有看到图中的毫秒数.是否可以添加它们?

dates = matplotlib.dates.datestr2num(x_values) # convert string dates to numbers
plt.plot_date(dates, y_values)  # doesn't show milliseconds
Run Code Online (Sandbox Code Playgroud)

python matplotlib

11
推荐指数
1
解决办法
6538
查看次数

什么是pandas.Panel弃用警告实际推荐?

我有一个包使用pandas面板来生成MultiIndex pandas DataFrames.但是,每当我使用pandas.Panel时,我都会得到以下DeprecationError:

DeprecationWarning:Panel已弃用,将在以后的版本中删除.表示这些类型的三维数据的推荐方法是通过Panel.to_frame()方法在DataFrame上使用MultiIndex.或者,您可以使用xarray包http://xarray.pydata.org/en/stable/.Pandas提供了.to_xarray()一种帮助自动执行此转换的方法.

但是,我无法理解这里的第一个建议实际上是为了创建MultiIndex DataFrames而推荐的.如果要删除Panel,我将如何使用Panel.to_frame?


澄清:我不是在问什么是弃用,或者如何将我的Panel转换为DataFrames.我要问的是,如果我在库中使用pandas.Panel然后使用pandas.Panel.to_frame从3D ndarrays创建MultiIndex DataFrames,并且不推荐使用Panels,那么制作这些DataFrames的最佳选择是什么使用Panel API?

例如,如果我正在执行以下操作,将X作为具有形状(N,J,K)的ndarray:

p = pd.Panel(X, items=item_names, major_axis=names0, minor_axis=names1)
df = p.to_frame()
Run Code Online (Sandbox Code Playgroud)

对于DataFrame构建来说,这显然不再是一个可行的面向未来的选项,尽管这是该问题中推荐的方法.

python numpy dataframe pandas python-xarray

11
推荐指数
1
解决办法
6343
查看次数

为PyYAML转储的某些部分指定样式

我正在使用YAML作为计算机和人类可编辑和可读的模拟器输入格式.对于人类可读性,输入的某些部分主要适合于阻止样式,而流动样式更适合其他部分.

PyYAML的默认设置是在嵌套地图或序列的任何地方使用块样式,在其他任何地方使用流样式.*default_flow_style*允许选择all-flow-style或all-block-style.

但我想输出更多的表格文件

bonds:
- { strength: 2.0 }
- ...
tiles:
- { color: red, edges: [1, 0, 0, 1], stoic: 0.1}
- ...
args: 
    block: 2
    Gse: 9.4
Run Code Online (Sandbox Code Playgroud)

可以看出,这并不是贯穿整个样式的一致模式,而是根据文件的部分而改变.本质上,我希望能够指定某些块样式序列中的所有值都是流式样.有没有办法对转储进行那种精细级别的控制?能够以特定顺序转储顶级映射而不需要该顺序(例如,omap)对于可读性而言将是好的.

yaml pyyaml

8
推荐指数
1
解决办法
2513
查看次数

(Python)使用scikits bootstrap估计回归参数置信区间

我刚开始尝试通过scikits提供一个很好的bootstrapping包:https: //github.com/cgevans/scikits-bootstrap

但是我在尝试从线性回归估计相关系数的置信区间时遇到了问题.返回的置信区间完全在原始统计量的范围之外.

这是代码:

import numpy as np
from scipy import stats
import bootstrap as boot

np.random.seed(0)
x     = np.arange(10)
y     = 10 + 1.5*x + 2*np.random.randn(10)
r0    = stats.linregress(x, y)[2]

def my_function(y):
    return stats.linregress(x, y)[2]

ci    = boot.ci(y, statfunction=my_function, alpha=0.05, n_samples=1000, method='pi')
Run Code Online (Sandbox Code Playgroud)

这产生ci = [ - 0.605,0.644]的结果,但原始统计量为r0 = 0.894.

我在R中试过这个并且似乎在那里工作得很好:ci横跨r0如预期的那样.

请帮忙!

python scipy linear-regression scikits

6
推荐指数
1
解决办法
5841
查看次数

如何将 (dtype=object) numpy 数组值设置为 Python 列表,而不需要 numpy 将列表解释为值列表?

我有一个 dtype=object 数组,其中值要么是 Python 列表,要么是np.nan.

我想用np.nan[None] (不是 None)替换值。

对于纯 Python 列表,我已经可以使用 来完成此操作[ x if (x is not np.nan) else [None] for x in s ],并且将数组转换为列表对于我的目的来说很好,但出于好奇,我想知道如何使用 numpy 数组来完成此操作。困难在于,当使用索引时,numpy 尝试将任何列表解释为值列表,而不是我想要分配的实际值。

例如,如果我想用 替换这些值2,那很容易(正常的 np、pd 导入;顺便说一句, np.isnan 在这种情况下不起作用,这是选择 float NaN 来表示 pandas 中通用缺失值的弱点,所以我使用 pd.isnull,因为这是针对 pandas 内部的问题):

In [53]: s
Out[53]:
array([['asdf', 'asdf'], ['asdf'], nan, ['asdf', 'asdf', 'asdf'],
       ['asdf', 'asdf', 'asdf']], dtype=object)

In [55]: s[pd.isnull(s)] = 2

In [56]: s
Out[56]:
array([['asdf', 'asdf'], ['asdf'], 2, ['asdf', 'asdf', …
Run Code Online (Sandbox Code Playgroud)

python numpy

5
推荐指数
1
解决办法
1792
查看次数

无法绘制饼图的值计数

我编写了一个函数来绘制饼图中变量值的分布,如下所示。 我需要得到的饼图

def draw_piecharts(df, variables, n_rows, n_cols):
     df[variables].value_counts.plot(kind='pie', layout=(n_rows,n_cols), subplots=True)
     plt.show()
def main():
    util.draw_piecharts(df, [ 'TARGET', 'BanruptcyInd'], 1,2)
if __name__ == "__main__":
    main()
Run Code Online (Sandbox Code Playgroud)

不幸的是,我的函数无法计算,因为数据框没有attribute value_counts(),而value_counts是我知道如何获取饼图中的分布的唯一方法。以下是绘制的变量的示例:

0     0
1     0
2     0
3     0
4     0
5     0
6     0
7     0
8     0
9     0
10    0
11    0
12    1
13    0
14    0
15    0
16    0
17    1
18    0
19    0
20    0
21    1
22    0
23    0
24    1
25    0
26    1
27 …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas subplot pie-chart

5
推荐指数
1
解决办法
5363
查看次数