我正在尝试使用 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 个元素,不能用于大小为 …
我想收集结构的更改并立即应用它们.基本大纲如下所示:
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)
这会产生以下编译器错误:
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` …
我有两个向量:
std::vector<const A> v_a;
std::vector<B> v_b;
Run Code Online (Sandbox Code Playgroud)
在程序v_a中充满了价值。现在我想将 type 的值转换A为B和 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)”作为编译器。
我只是好奇是否存在 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
c++ ×1
copy ×1
exception ×1
ipdb ×1
matplotlib ×1
python ×1
python-3.x ×1
rust ×1
scatter-plot ×1
types ×1