小编gab*_*ous的帖子

使用 Datashader 和 Holoviews 具有多种颜色和图例的时间序列

我想绘制一个包含 3 列的时间序列数据框,每条曲线一列。我希望每条曲线都有自己的颜色,并显示图例,就像hvplot()默认情况下一样。

这是一个独立的示例:

import numpy as np
import pandas as pd
import hvplot.pandas
import datetime
from holoviews.operation.datashader import datashade

n=1000
start = datetime.datetime(2010, 10, 1, 0)   # Start time
datetimerange = [start + datetime.timedelta(minutes=1)*i for i in range(n)]
A = np.random.randint(5, size=n)
B = np.random.randint(20, 40, size=n)
C = np.random.randint(10, 20, size=n)
d = {'datetime': datetimerange, 'A': A, 'B': B, 'C': C}
df = pd.DataFrame(d).set_index('datetime')

df.hvplot(cmap=['red', 'blue', 'green']) + datashade(df.hvplot(cmap=['red', 'blue', 'green']))
Run Code Online (Sandbox Code Playgroud)

这是结果(左侧没有数据着色器,右侧有数据着色器):

在此输入图像描述

将绘图传递给数据着色器时,颜色和图例会丢失。使用datashade=True的参数hvplot …

python data-visualization holoviews datashader

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

自动化调试工具

我最近发现了自动化调试的神奇世界,您的工具尝试自动隔离导致错误的代码部分。从那时起,我找到了一些工具,例如:

  • 使用应用于调试的科学方法进行增量调试(在DD.py中实现)。
  • 静态和动态程序切片提取子程序跟踪,突出显示您想要观察的变量。
  • git-bisect使用二分法应用于代码历史记录并与增量调试混合以快速找到导致错误的更改。

我有兴趣寻找更多用于自动调试的算法,这些算法可以自动化调试过程的部分(或全部?),并且存在实用的工作实现,特别是:

  • 诸如增量调试之类的方法(可以通过使用系统/自动化方法精确查明代码中发生错误的位置和原因)。
  • 有没有一种软件可以自动生成一个最小的程序,从完整的程序中重现错误?

注意:我引用的一些工具主要针对Python,但我正在寻找任何语言的自动调试工具,我感兴趣的是方法和算法,而不是具体的实现,但我需要一个实现(甚至是概念证明)因为我想要已经实际应用于实际问题的算法(即它们有效,但这不是计算机科学哲学)。

澄清:我不是在寻找自动化测试工具(自动测试以查找新错误),而是在您遇到特定错误并希望在代码中找到根源的自动化调试方法。

debugging automation automated-tests

4
推荐指数
1
解决办法
3733
查看次数

不一致的figsize在matplotlib中调整大小

我有几个不同的条形图数字,用不同数量的条形成.因此,图形的总宽度和高度会有所不同,但我希望所有条形图的条形尺寸始终相同.

到目前为止我尝试的是按比例调整figsize的数量.这似乎并不一致.

这是一个示例代码:

nb_bars_list = [2, 10]

for i, nb_bars in enumerate(nb_bars_list):
    # Resize proportionally to the number of bars
    figsize = [1+nb_bars, 5]
    # Prepare the ticks
    ticks = np.arange(1, 1+nb_bars, 1)
    # Generate random points
    points = [np.random.randn(10) for x in xrange(nb_bars)]
    # Make the plot
    fig, ax = plt.subplots()
    if figsize:
        fig.set_size_inches(figsize[0], figsize[1], forward=True)
    for b in xrange(nb_bars):
        ax.bar(ticks[b], points[b].mean())
    fig.savefig('test%i' % i, bbox_inches='tight')
Run Code Online (Sandbox Code Playgroud)

结果如下: 2条 10条

如果我们使用GIMP重叠,我们可以清楚地注意到条宽的差异:

这两个酒吧

无论条数多少,如何确保条的宽度相同?

我正在使用matplotlib 2.

python matplotlib python-2.7

4
推荐指数
1
解决办法
306
查看次数

列出Python中函数所期望的变量?

我想知道是否有可能在调用它之前列出Python函数所期望的变量,以便从包含大量变量的更大的dict传递预期的变量.

我在网上搜索但找不到任何东西.但是,python解释器可以显示预期变量的列表,所以肯定必须有一些方法在脚本中执行它?

python variables metaprogramming function

3
推荐指数
1
解决办法
2396
查看次数

Python 向量的伪逆和行列式

如何计算向量的伪逆和行列式?(最好使用 numpy 或更好的 pandas)

我尝试了这个,但它不起作用:

import numpy
vect = [1, 2, 3, 4]
numpy.linalg.pinv(vect)
Run Code Online (Sandbox Code Playgroud)

但我收到这个错误:

---------------------------------------------------------------------------
LinAlgError                               Traceback (most recent call last)
<ipython-input-106-e362654e383f> in <module>()
     19 vect = [1, 2, 3, 4]
---> 20 print(np.linalg.pinv(vect))

C:\Python27\lib\site-packages\numpy\linalg\linalg.pyc in pinv(a, rcond)
   1544     _assertNonEmpty(a)
   1545     a = a.conjugate()
-> 1546     u, s, vt = svd(a, 0)
   1547     m = u.shape[0]
   1548     n = vt.shape[1]

C:\Python27\lib\site-packages\numpy\linalg\linalg.pyc in svd(a, full_matrices, compute_uv)
   1269     """
   1270     a, wrap = _makearray(a)
-> 1271     _assertRank2(a)
   1272     _assertNonEmpty(a)
   1273     m, …
Run Code Online (Sandbox Code Playgroud)

python numpy vector linear-algebra pandas

3
推荐指数
1
解决办法
5086
查看次数

从双重功能返回空白?

我有一个double函数,通常返回变量的新值,但有时我不想更改变量,我想通过返回一个特殊值来表示,例如void.那可能吗?

例如:

double GetNewValue(int feature) {
    switch( feature ) {
        case TYPE1:
            return void; // or maybe use return; here?
        case TYPE2:
            return 2.343;
        default:
            return featureDefaultValue;
    }
}
Run Code Online (Sandbox Code Playgroud)

PS:我知道我可以使用NaN,但我已经将它用作具有其他含义的有效值(还没有数字可用).

/编辑:谢谢大家的答案,这3个答案都适用于我的问题,并且都同样有效.我现在正在努力选择我将要使用哪一个(我会接受的那个,但我希望我能接受它们!).

c return function void

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