小编Bur*_*dui的帖子

matplotlib scatter 失败并出现错误:'c' 参数有 n 个元素,这对于大小为 n 的 'x'、大小为 n 的 'y' 来说是不可接受的

我正在尝试使用 matplotlib 创建一个散点图,其中每个点都有一个特定的颜色值。

我缩放这些值,然后在“左”和“右”颜色之间应用 alpha 混合。

# initialization
from matplotlib import pyplot as plt
from sklearn.preprocessing import MinMaxScaler
import numpy as np

values = np.random.rand(1134)

# actual code
colorLeft = np.array([112, 224, 112])
colorRight = np.array([224, 112, 112])
scaled = MinMaxScaler().fit_transform(values.reshape(-1, 1))
colors = np.array([a * colorRight + (1 - a) * colorLeft for a in scaled], dtype = np.int64)
# check values here
f, [sc, other] = plt.subplots(1, 2)
sc.scatter(np.arange(len(values)), values, c = colors)
Run Code Online (Sandbox Code Playgroud)

但是最后一行给出了错误:

'c' 参数有 1134 个元素,不能用于大小为 …

python matplotlib scatter-plot

15
推荐指数
1
解决办法
2万
查看次数

如何移出作为选项的struct字段?

我想收集结构的更改并立即应用它们.基本大纲如下所示:

enum SomeEnum {
    Foo,
    Bar,
}

struct SomeStruct {
    attrib: SomeEnum,
    next_attrib: Option<SomeEnum>,
}

impl SomeStruct {
    pub fn apply_changes(&mut self) {
        if let Some(se) = self.next_attrib {
            self.attrib = se;
        }
        self.next_attrib = None;
    }
}
Run Code Online (Sandbox Code Playgroud)

这会产生以下编译器错误:

error[E0507]: cannot move out of borrowed content
  --> src/lib.rs:13:27
   |
13 |         if let Some(se) = self.next_attrib {
   |                     --    ^^^^ cannot move out of borrowed content
   |                     |
   |                     hint: to prevent move, use `ref se` or `ref mut se` …
Run Code Online (Sandbox Code Playgroud)

copy rust borrow-checker

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

如何处理 std::vector&lt;...&gt;::size_type 为 int

我有两个向量:

std::vector<const A> v_a;
std::vector<B> v_b;    
Run Code Online (Sandbox Code Playgroud)

在程序v_a中充满了价值。现在我想将 type 的值转换AB和 fill v_b

我首先调整大小v_b,请注意 std::transform 对我不起作用:

v_b.resize(v_a.size());        // Auto-construct new elements using default c-tor
Run Code Online (Sandbox Code Playgroud)

这会导致以下警告:

Value Conversion Issue
-Wsign-conversion
202:55: warning: implicit conversion changes signedness: 'std::vector<const A, std::allocator<const A> >::size_type' (aka 'int') to 'std::vector<B, std::allocator<B> >::size_type' (aka 'unsigned long long')
Run Code Online (Sandbox Code Playgroud)

向量 size_type 怎么可能是 int,它至少应该是一个无符号的?

两个向量怎么可能有不同的 size_types?即使它们在不同的源文件中定义,编译器也应该使用相同的类型。是否可以修改 size_type?

我如何(安全地)检查是否v_a.size() < v_b.max_size()不产生新警告?


QT-Creator 声明我使用“Microsof Visual C++ Compiler 15.0 (amd64)”作为编译器。

c++ types

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

pdb 事后调试:在异常处理程序中退出后跳转到引发异常

我只是好奇是否存在 ipdb 调试器跳回引发异常的源的命令。

考虑下面的小程序。

import sys
import random

def somefun():
    someval = random.random()
    raise Exception()

def run():
    try:
        somefun()
    except Exception:
        sys.exit(10)
Run Code Online (Sandbox Code Playgroud)

run当从命令行(使用 ipython-console)运行该函数时,它会按应有的值以 10 退出。有没有办法启动事后调试器( )并通过跳回pdb.pm()获取值?someval

exception python-3.x ipdb

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