小编jb3*_*326的帖子

Router Navigate在同一页面时不会调用ngOnInit

router.navigate在同一页面上调用一些查询字符串参数.在这种情况下,ngOnInit()不会打电话.它是默认还是我需要添加其他内容?

navigateurl ngoninit angular

62
推荐指数
6
解决办法
5万
查看次数

如何在Seaborn FacetGrid中制作热图正方形

我正在使用Seaborn的FacetGrid类来使用该heatmap功能绘制一组矩阵,也来自Seaborn.但是,我无法调整这些子图的纵横比.这是一个例子:

import seaborn as sns
import numpy as np
import pandas as pd

# Generate a set of sample data
np.random.seed(0)
indices = pd.MultiIndex.from_product((range(5), range(5), range(5)), names=('label0', 'label1', 'label2'))
data = pd.DataFrame(np.random.uniform(0, 100, size=len(indices)), index=indices, columns=('value',)).reset_index()

def draw_heatmap(*args, **kwargs):
    data = kwargs.pop('data')
    d = data.pivot(index=args[1], columns=args[0], values=args[2])
    sns.heatmap(d, **kwargs)

fg = sns.FacetGrid(data, col='label0')
fg.map_dataframe(draw_heatmap, 'label1', 'label2', 'value', cbar=False)
Run Code Online (Sandbox Code Playgroud)

这会产生这样的图像:

水平阵列的图

注意矩阵图的元素是矩形的,而不是方形的.如果我做一个图(无FacetGrid),我可以通过选项square=Truesns.heatmap使情节广场.但是,如果我把它放在参数中map_dataframe,我得到这个结果:

fg = sns.FacetGrid(data, col='label0')
fg.map_dataframe(draw_heatmap, 'label1', 'label2', 'value', …
Run Code Online (Sandbox Code Playgroud)

python matplotlib seaborn

16
推荐指数
2
解决办法
4854
查看次数

Python 3.5更新失败后,Anaconda root env不一致

我最近尝试使用该命令将我的Anaconda安装的根环境从Python 3.4更新到Python 3.5

conda install python=3.5
Run Code Online (Sandbox Code Playgroud)

做完之后,我跑了

conda update --all python=3.5
Run Code Online (Sandbox Code Playgroud)

希望它能将所有其他软件包更新为Python 3.5版本,但它失败并显示以下错误消息:(请注意,我在此列表中间省略了许多软件包)

The following specifications were found to be in conflict:
  - backports_abc -> python 2.7*|3.4*
  - certifi -> python 2.7*|3.4*
  - colorama -> python 2.7*|3.4*|3.5*
  - conda -> python 2.7*|3.4*|3.5*
  - conda-env -> python 2.7*|3.4*
  - decorator -> python 2.7*|3.4*
  - django -> python 2.7*|3.4*
  - ecdsa -> python 2.7*|3.4*
  - flask -> python 2.7*|3.4*
  - greenlet -> python 2.6*|2.7*|3.3*|3.4*|3.5*
  - ipykernel -> python 2.7*|3.4*

[...many more...] 

  - …
Run Code Online (Sandbox Code Playgroud)

python anaconda python-3.5

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

无需就地构建扩展即可运行 Python 单元测试

我有一个包含一些 Cython 扩展的 Python 3.6 包。让我们假设它的内容如下:

# example/example.pyx

def add(int a, int b):
    return a + b
Run Code Online (Sandbox Code Playgroud)

我可以使用setuptools这个脚本来构建它

# setup.py

from setuptools import setup, Extension
from Cython.Build import cythonize

example_ext = Extension(
    name='example.example',
    sources=['example/example.pyx'],
)

setup(
    name='Example package',
    packages=['example'],
    ext_modules=cythonize([example_ext]),
)
Run Code Online (Sandbox Code Playgroud)

现在我可以添加一个单元测试:

# example/tests/test_example.py

import unittest
from example.example import add

class TestExample(unittest.TestCase):
    def test_add(self):
        result = add(4, 5)
        self.assertEqual(result, 9)
Run Code Online (Sandbox Code Playgroud)

但是,如果我运行python -m unittest discover,则测试失败并显示 ,ImportError因为它找不到已编译的 Cython 模块。即使我已经使用python setup.py build_ext.

我发现使测试工作的唯一方法是使用 就地构建 Cython …

python setuptools cython python-unittest

7
推荐指数
0
解决办法
491
查看次数

如何将权重传递给 Seaborn FacetGrid

我有一组数据,我正在尝试使用 seaborn 中的 FacetGrid 绘制这些数据。每个数据点都有一个与之相关的权重,我想在网格的每个方面绘制一个加权直方图。

例如,假设我有以下(随机创建的)数据集:

import seaborn as sns
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

d = pd.DataFrame(np.array([np.random.randint(0, 6, 5000), 
                           np.random.normal(0, 1., 5000),
                           np.random.uniform(0, 1, 5000)]).T, 
                 columns=('cat', 'val', 'weight'))
Run Code Online (Sandbox Code Playgroud)

这些数据的结构如下:

   cat       val    weight
0    0 -0.844542  0.668081
1    0 -0.521177  0.521396
2    1 -1.160358  0.788465
3    0 -0.394765  0.115242
4    5  0.735328  0.003495
Run Code Online (Sandbox Code Playgroud)

通常,如果我没有权重,我会这样绘制:

fg = sns.FacetGrid(d, col='cat', col_wrap=3)
fg.map(plt.hist, 'val')
Run Code Online (Sandbox Code Playgroud)

这构成了一个直方图网格,其中每个直方图显示val了类别的一个值的变量分布cat

我想做的是对每个直方图进行加权。如果我用 Matplotlib 制作单个直方图,我会这样做:

plt.hist(d.val, weights=d.weight)
Run Code Online (Sandbox Code Playgroud)

我尝试将 weights …

python plot histogram seaborn

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

Python setuptools不包括C ++标准库标头

我正在尝试将Python包装器编译为我编写的小型C ++库。我编写了以下setup.py脚本以尝试setuptools用于编译包装器:

from setuptools import setup, Extension
import numpy as np
import os

atmcmodule = Extension(
    'atmc',
    include_dirs=[np.get_include(), '/usr/local/include'],
    libraries=['mcopt', 'c++'],  # my C++ library is at ./build/libmcopt.a
    library_dirs=[os.path.abspath('./build')],
    sources=['atmcmodule.cpp'],
    language='c++',
    extra_compile_args=['-std=c++11', '-v'],
    )

setup(name='tracking',
      version='0.1',
      description='Particle tracking and MC optimizer module',
      ext_modules=[atmcmodule],
      )
Run Code Online (Sandbox Code Playgroud)

但是,当我python setup.py build在OS X El Capitan上运行时,clang抱怨找不到某些C ++标准库头文件:

In file included from atmcmodule.cpp:7:
In file included from ./mcopt.h:11:
In file included from ./arma_include.h:4:
/usr/local/include/armadillo:54:12: fatal error: 'initializer_list' file not …
Run Code Online (Sandbox Code Playgroud)

c++ python macos setuptools

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

OpenCV:无法使用FaceTime

我正在尝试在我的mac中使用opencv和python来匹配对象.

但是我收到了这个错误.

OpenCV: Cannot Use FaceTime HD Kamera (Yerle?ik)
OpenCV: camera failed to properly initialize!
Segmentation fault: 11
Run Code Online (Sandbox Code Playgroud)

这也是我的代码.

import numpy as np
import cv2
import time

ESC=27   
camera = cv2.VideoCapture(0)
orb = cv2.ORB_create()


while True:

    ret, imgCamColor = camera.read()
    imgCamGray = cv2.cvtColor(imgCamColor, cv2.COLOR_BGR2GRAY)
    kpCam = orb.detect(imgCamGray,None)
    kpCam, desCam = orb.compute(imgCamGray, kpCam)
    bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True)
    matches = bf.match(desCam,desTrain)
    good = []


    cv2.imshow('Camara', result)

    key = cv2.waitKey(20)                                 
    if key == ESC:
        break

cv2.destroyAllWindows()
camera.release()
Run Code Online (Sandbox Code Playgroud)

我也尝试了一些东西.但它不起作用.

python opencv orb

2
推荐指数
3
解决办法
3074
查看次数