小编MSe*_*ert的帖子

如何在x轴上具有大范围时水平滚动高级图表

我正在动态生成我的x轴和y轴数据并显示高图,但是当x轴范围很高且间隔很小时,图表会变得混乱.

如何制作高级图表以制作正常的水平可滚动图形?

这是我现在正在使用的:

在此输入图像描述

<div id="container" style="min-width: 400px; height: 400px; margin: 0 auto"></div>

//CODE FOR HIGHCHARTS JS
function makeChart() {
    $('#container').highcharts({
        chart: {
            type: 'line',
            marginRight: 130,
            marginBottom: 100
        },
        title: {
            text: 'Banana',
            x: -20 //center
        },
        subtitle: {
            text: 'Source: banana.com',
            x: -20
        },
        xAxis: {
            categories: xlist
        },
        yAxis: {
            title: {
                text: 'No. of C'
            },
            plotLines: [{
                value: 0,
                width: 1,
                color: '#808080'
            }]
        },
        tooltip: {
            valueSuffix: 'C'
        },
        legend: {
            layout: 'vertical',
            align: 'right', …
Run Code Online (Sandbox Code Playgroud)

highcharts

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

检查列表是否有重复列表

给定一个列表列表,我想确保没有两个列表具有相同的值和顺序.例如,my_list = [[1, 2, 4, 6, 10], [12, 33, 81, 95, 110], [1, 2, 4, 6, 10]]它应该返回给我重复列表的存在,即[1, 2, 4, 6, 10].

我使用while但它不能按我的意愿工作.有人知道如何修复代码:

routes = [[1, 2, 4, 6, 10], [1, 3, 8, 9, 10], [1, 2, 4, 6, 10]]
r = len(routes) - 1
i = 0
while r != 0:
    if cmp(routes[i], routes[i + 1]) == 0:
        print "Yes, they are duplicate lists!"
    r -= 1
    i += 1
Run Code Online (Sandbox Code Playgroud)

python duplicates

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

如何累积"全部"

设置
考虑numpy数组a

>>> np.random.seed([3,1415])
>>> a = np.random.choice([True, False], (4, 8))

>>> a
array([[ True, False,  True, False,  True,  True, False,  True],
       [False, False, False, False,  True, False, False,  True],
       [False,  True,  True,  True,  True,  True,  True,  True],
       [ True,  True,  True, False,  True, False, False, False]], dtype=bool)
Run Code Online (Sandbox Code Playgroud)

问题
对于每一列,我想确定所有列的累积等价物.

结果应如下所示:

array([[ True, False,  True, False,  True,  True, False,  True],
       [False, False, False, False,  True, False, False,  True],
       [False, False, False, False,  True, False, False,  True],
       [False, False, False, …
Run Code Online (Sandbox Code Playgroud)

python numpy pandas

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

如何在另一个列表中获取列表项的索引?

考虑我有这些列表:

l = [5,6,7,8,9,10,5,15,20]
m = [10,5]
Run Code Online (Sandbox Code Playgroud)

我想要得到的指数ml.我使用list comprehension来做到这一点:

[(i,i+1) for i,j in enumerate(l) if m[0] == l[i] and m[1] == l[i+1]]
Run Code Online (Sandbox Code Playgroud)

输出: [(5,6)]

但如果我有更多的数字m,我觉得它不是正确的方法.那么Python或NumPy有什么简单的方法吗?

另一个例子:

l = [5,6,7,8,9,10,5,15,20,50,16,18]
m = [10,5,15,20]
Run Code Online (Sandbox Code Playgroud)

输出应该是:

[(5,6,7,8)]
Run Code Online (Sandbox Code Playgroud)

python numpy list

10
推荐指数
2
解决办法
1296
查看次数

IPython%timeit选项中的循环和迭代是什么?

我想知道这个%timeit命令IPython

来自文档:

%timeit [-n<N> -r<R> [-t|-c] -q -p<P> -o] setup_code
Run Code Online (Sandbox Code Playgroud)

选项:

-n:在循环中执行给定的语句次数.如果未给出该值,则选择拟合值.

-r:重复循环迭代次数并获得最佳结果.默认值:3

例如,如果我写:

%timeit -n 250 -r 2 [i+1 for i in range(5000)]
Run Code Online (Sandbox Code Playgroud)

那么,-n 250执行[i+1 for i in range(5000)]250次?那又怎么样-r 2

python ipython timeit

10
推荐指数
2
解决办法
4229
查看次数

一个用于多个散点图的颜色条

我正在使用matplotlib库在一个图上绘制同一变量的多个数字.我不是在寻找colorbar的次要情节,这是占主导地位的搜索材料.我绘制多个scatters,但colorbar仅设置为最后一个散射I图的值.

这是代码的一部分:

plt.scatter(x1, y1, c=z1,cmap='viridis_r',marker='s')
plt.scatter(x2, y2, c=z2,cmap='viridis_r',marker='o')
plt.scatter(x3, y3, c=z3,cmap='viridis_r',marker='^')
plt.colorbar().set_label('Wind speed',rotation=270)
Run Code Online (Sandbox Code Playgroud)

python matplotlib scatter-plot colorbar

10
推荐指数
2
解决办法
2580
查看次数

自建扩展模块比内置c模块慢

要学习如何创建C扩展,我决定只复制一个内置.c文件(在本例中itertoolsmodule.c)并将其放在我的包中.我只能从更改的名称在模块内部itertoolsmypkg.

然后我编译它(Windows 10,MSVC Community 14)setuptools.Extension:

from setuptools import setup, Extension

itertools_module = Extension('mypkg.itertoolscopy',
                              sources=['src/itertoolsmodulecopy.c'])

setup(...
      ext_modules=[itertools_module])
Run Code Online (Sandbox Code Playgroud)

默认使用编译器标志/c /nologo /Ox /W3 /GL /DNDEBUG /MD,我在某处读取这些默认值等于python编译方式的设置.但是我使用conda(64位设置),所以这可能不一定是真的.

这一切都进展顺利 - 但是一个基准测试filterfalse显示它几乎比内置的慢2倍:

import mypkg
import itertools

import random

a = [random.random() for _ in range(500000)]
func = None

%timeit list(filter(func, a))
100 loops, best of 3: 3.42 ms per loop
%timeit list(itertools.filterfalse(func, a))
100 loops, best of 3: 3.41 ms …
Run Code Online (Sandbox Code Playgroud)

python performance python-c-api

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

Pythonic方式在列表推导中使用第二个条件

我们假设以下函数:

def myfun(my_list, n, par1=''):
    if par1 == '':
        new_list = [[my_fun2(i,j) for j in range(n)] for i in range(n)]
    else:
        new_list = [[my_fun2(i,j) for j in range(n)] for i in range(n) if my_fun2(i,n) == par1]
    return new_list
Run Code Online (Sandbox Code Playgroud)

如您所见,有两种不同的场景取决于par1.我不喜欢第3行和第5行几乎相同,并且不遵循DRY(不要重复自己)原则.如何改进此代码?

python if-statement list-comprehension

9
推荐指数
2
解决办法
779
查看次数

构建没有路径入侵的python项目

我有一个共享的python库,我在多个项目中使用,所以结构如下所示:

Project1
    main.py <--- (One of the projects that uses the library)
...
sharedlib
    __init__.py
    ps_lib.py
    another.py
Run Code Online (Sandbox Code Playgroud)

现在在每个项目的main.py中,我使用以下hack来使它工作:

import os
import sys
sys.path.insert(0, os.path.abspath('..'))

import sharedlib.ps_lib
...
Run Code Online (Sandbox Code Playgroud)

有没有办法在不使用这个黑客的情况下做到这一点?或者有更好的方法来组织项目结构吗?

python directory-structure project-structure organization python-import

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

Visual Studio代码创建uml类图

我正在用编辑器VScode编写一个Ionic应用程序.

是否有任何解决方案来生成我的项目的uml类图,就像在ide visual studio上一样?

最好的衣服

uml visual-studio-code

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