从我从https://s3.amazonaws.com/nyc-tlc/misc/taxi_zones.zip获得的 shapefile 开始,我想绘制曼哈顿区,并为每个出租车区绘制轮廓。
此代码单独轮换每个单独的出租车区域,而不是一次轮换所有。
import geopandas as gpd
from matplotlib import pyplot as plt
fname = "path_to_shapefile.shp"
df = gpd.read_file(fname)
df = df[df['borough'] == "Manhattan"]
glist = gpd.GeoSeries([g for g in df['geometry']])
glist = glist.rotate(90)
glist.plot()
Run Code Online (Sandbox Code Playgroud)
[编辑] 我进一步改进了它,以便能够以编程方式旋转图像。但是,如果我添加一个图例,那么它也会被旋转,这是不可取的。仍在寻找更好的解决方案。请注意,还有这个 stackoverflow 帖子(如何将 matplotlib 图旋转 90 度?),但是,旋转图而不是图像的解决方案仅适用于 90 度旋转。
import geopandas as gpd
from matplotlib import pyplot as plt
import numpy as np
from scipy import ndimage
from matplotlib import transforms
fname = "path_to_shapefile.shp"
df = gpd.read_file(fname)
df = …Run Code Online (Sandbox Code Playgroud) [更新2]
以下两行,当添加到我的CMake文件中时,成功找到了python 3及其库.这只是在终端工作的原因是因为CLion正在使用其捆绑版本的CMake(3.6.3)和我的终端正在使用的更新版本(3.7.2)正确找到python.
FIND_PACKAGE(PythonInterp 3)
FIND_PACKAGE(PythonLibs 3)
Run Code Online (Sandbox Code Playgroud)
[UPDATE]我得到了cmake文件,但是,当我从终端运行时它只找到python3库.从CLion运行时,我收到以下错误:
CMake错误:此项目中使用以下变量,但它们设置为NOTFOUND.请设置它们或确保它们在CMake文件中正确设置和测试:PYTHON_LIBRARY(ADVANCED)
[原始帖子]
我正在开发一个跨平台的C++应用程序,并使用PythonLibs 3和boost_python来从python调用c ++方法.在ubuntu这工作正常但是,在macOS上,我似乎无法让cmake识别pythonlibs3.
在ubuntu上,以下行有效:
FIND_PACKAGE(PythonLibs 3 REQUIRED)
Run Code Online (Sandbox Code Playgroud)
但是,在macOS上,它只能使用pythonlibs 2.7.10 /usr/libs/
我尝试过以下方法:
set(Python_ADDITIONAL_VERSIONS 3.6)到我的cmake其他信息:
FIND_PACKAGE(PythonInterp 3)cmake时能够找到我的python3安装./usr/lib/文件夹时,我发现libpython2.7.dylib但是我没有libpython3.6/dylib,/usr/lib/或者/usr/local/lib/.这似乎是因为找到了这个文件/usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/lib.如果我将libpython3.6的位置添加到我的find_package中,
FIND_PACKAGE(PythonLibs 3 PATHS /usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/ REQUIRED)
它能够找到库但我得到错误:
找不到具有
以下任何名称的"PythonLibs" (请求的版本3)提供的包配置文件:Run Code Online (Sandbox Code Playgroud)PythonLibsConfig.cmake pythonlibs-config.cmake将"PythonLibs"的安装前缀添加到CMAKE_PREFIX_PATH或将"PythonLibs_DIR"设置为包含上述文件之一的目录.如果"PythonLibs"提供单独的开发包或SDK,请确保它已安装.
另外,如果我尝试在不使用find_package的情况下设置python变量,它可以找到库:
SET(PYTHON_INCLUDE_PATH /usr/local/include/python3.6mu)
SET(PYTHON_EXECUTABLE /usr/local/bin/python3.6mu)
SET(PYTHON_INCLUDE_DIR /usr/local/include/python3.6mu)
SET(PYTHON_LIBRARIES /usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/lib/)
但是后来我的cmake中出现了以下错误:
PYTHON_ADD_MODULE(${PYRITMO_LIB} src/pythonwrappers.cpp)
错误如下:
未知的CMake命令"PYTHON_ADD_MODULE".
这样做的原因似乎是因为此函数是由其FindPythonLibs.cmake加载的find_package(Pythonlibs),因此,如果这不是用于定位PythonLibs,则无法调用此函数.
我想创建一个交互式 Python 编码游戏,用户可以在 Jupyter Notebook 中输入命令并在 GUI 上实时查看结果。这似乎在常规的 python 交互式 shell 中工作得很好。我让它运行的方法如下:
example.py使用以下代码调用它:import tkinter as tk
def create_canvas():
root = tk.Tk()
root.resizable(False, False)
root.title("Karel")
frame = tk.Frame(root)
frame.pack()
canvas = tk.Canvas(frame, bg="white", width=500,
height=500)
canvas.pack()
return canvas
def create_oval(canvas):
return canvas.create_oval(150, 150, 155, 155, fill='#000')
def move(canvas, oval):
canvas.move(oval, 0, -50)
Run Code Online (Sandbox Code Playgroud)
>> import example
>> canvas = example.create_canvas()
>> oval = example.create_oval(canvas)
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试在 ipython 中使其工作时,我没有看到 GUI(我假设这是因为我不执行 tkintersmainloop函数)。但如果我执行该mainloop函数,那么我就无法再让用户在交互式 python shell …
我正在使用 prost 为 protobuf 生成 Rust 类。我希望 Clippy 忽略这些生成的文件,但我无法弄清楚如何让 Clippy 忽略它们。
在我的 lib.rs 文件中,我有
pub mod modes {
#[allow(clippy)]
include!(concat!(env!("OUT_DIR"), "/modes.rs"));
}
#[allow(clippy)]
pub mod vehicle_features {
include!(concat!(env!("OUT_DIR"), "/vehicle_features.rs"));
}
Run Code Online (Sandbox Code Playgroud)
但是,我仍然收到 models.rs 和vehicle_features.rs 文件的警告。如何在不修改文件的情况下忽略clippy中的这些模块/文件。
编辑:根据以下建议,我将代码更改为:
pub mod modes {
#![allow(clippy::all)]
include!(concat!(env!("OUT_DIR"), "/modes.rs"));
}
pub mod vehicle_features {
#![allow(clippy::all)]
include!(concat!(env!("OUT_DIR"), "/vehicle_features.rs"));
}
Run Code Online (Sandbox Code Playgroud)
这在跑步时有效cargo clippy,但在跑步时不起作用cargo clippy -- -W unwrap_used有人知道为什么吗?当我向 Clippy 添加额外的警告参数时,如何使其工作?
编辑2:
我在这里找到了答案:How to disable a Clippy lint for a single line / block?
“clippy:all 实际上并不允许所有 lints,而是允许正确性、可疑性、风格、复杂性、cargo …
我有一个 Option 类型的值。如果类型中有一个 Leg 值,我想修改 Leg 结构,然后通过将腿从当前存储的位置移动self._current_leg到self._completed_legs. 然后我想将该_current_leg值设置为堆栈中的下一条腿_expected_legs。但是,我收到了一个类型不匹配的错误,self._completed_legs.push(leg)因为Trip.dropoff()堆栈需要一个 Leg 类型的结构,而我正在传递一个&mut Leg类型。我不知道如何将值移出变量_current_leg——我似乎只能借用该值。
相关代码位于该代码块的底部。谢谢您的帮助。
use std::collections;
pub struct Stack<T> {
maxsize: usize,
items: Vec<T>,
}
impl<T> Stack<T> {
pub fn new(maxsize: usize) -> Self {
Self {
maxsize,
items: Vec::with_capacity(maxsize),
}
}
pub fn pop(&mut self) -> Option<T> {
self.items.pop()
}
pub fn push(&mut self, item: T) -> bool {
if self.items.len() == self.maxsize {
return …Run Code Online (Sandbox Code Playgroud)