我正在尝试构造一个简单的函数,它接受一个subplot instance(matplotlib.axes._subplots.AxesSubplot)并将其投影转换为另一个投影,例如,转换为其中一个cartopy.crs.CRS投影.
这个想法看起来像这样
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
def make_ax_map(ax, projection=ccrs.PlateCarree()):
# set ax projection to the specified projection
...
# other fancy formatting
ax2.coastlines()
...
# Create a grid of plots
fig, (ax1, ax2) = plt.subplots(ncols=2)
# the first subplot remains unchanged
ax1.plot(np.random.rand(10))
# the second one gets another projection
make_ax_map(ax2)
Run Code Online (Sandbox Code Playgroud)
当然,我可以使用fig.add_subplot()功能:
fig = plt.figure(figsize=(10,5))
ax1 = fig.add_subplot(121)
ax1.plot(np.random.rand(10))
ax2 = fig.add_subplot(122,projection=ccrs.PlateCarree())
ax2.coastlines()
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有一个适当的matplotlib方法来改变定义后的子图轴投影.不幸的是,阅读matplotlib API没有帮助.
我的代码
$ python
Python 3.5.2 |Continuum Analytics, Inc.| (default, Jul 2 2016, 17:53:06)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> a = (1, 2)
>>> '%d %d %d' % (0, *a)
'0 1 2'
>>> '%d %d %d' % (*a, 3)
'1 2 3'
>>> '%d %d' % (*a)
File "<stdin>", line 1
SyntaxError: can't use starred expression here
>>>
Run Code Online (Sandbox Code Playgroud)
我的问题,为什么?
用更严肃的语气:我想要一个答案或参考,详细说明使用星号表达的所有细节,因为碰巧我有时会对其行为感到惊讶......
为了反映我的问题后面的一些启发性评论,我添加了以下代码
>>> '%d %d' % (, …Run Code Online (Sandbox Code Playgroud) IPython的新版本不再依赖,readline而是使用纯Python库prompt-toolkit,解决Apple和Windows系统上的维护问题.
一个新功能是能够编辑多行代码块,使用光标键在代码块中自由移动 - 至少对我来说这是一个问题:因为ret在代码中插入一个新行,整个块传递给你要使用快捷翻译alt+ ret或可能是不太方便的键序列esc之后ret.
我说,这是一个问题,因为我选择的终端模拟器是XTerm,并且在许多Linux发行版中,快捷方式alt+ ret没有传递给应用程序,但它直接由运行IPython的XTerm使用,以切换所述终端的屏幕丰满度(@ThomasDickey,xterm的mantainer和共同作者指出,默认情况下,xterm无需向Enter应用程序发送修改器位,即使在解除Fullscreen操作时也是如此).
出于这个原因,我想至少修改这个特定的IPython密钥绑定.
我已经找到了readline适用于新版5.0版本的IPython 的前一版本(基于版本)的说明(有点).
我需要的是指导,让我在IPython的用户文档中找到可以绑定的可能操作的名称,与操作绑定的快捷方式的名称以及配置新键绑定时要遵循的过程.
如果没有这种类型的规范答案,我可能会对配方完成这个特定的键绑定感到满意,条件是配方仍然适用于IPython 6.0
我如何阅读两条特定线之间的所有线?
让我们说第23行是我要开始的地方,而第56行是要读取的最后一行,但它不是文件的结尾.
我如何阅读23至56行?我将把它们输出到另一个文件.
我有python的问题.
我做了一个简单的清单:
>>> my_list = ["one","two","three"]
Run Code Online (Sandbox Code Playgroud)
我想创建一个"单行代码"来查找字符串.
例如,我有这个代码:
>>> [(i) for i in my_list if i=="two"]
['two']
Run Code Online (Sandbox Code Playgroud)
但是当我看到变量是错误的时(我找到了我的列表的最后一个值):
>>> print i
three
Run Code Online (Sandbox Code Playgroud)
为什么我的变量包含最后一个元素而不是我想要找到的元素?
我正在尝试将点的集合绘制到华盛顿州金县的图形上。
我可以使用以下代码显示图形:
fig, ax = plt.subplots(figsize = (15,15))
kings_county.plot(ax=ax)
Run Code Online (Sandbox Code Playgroud)
这给了我图形。然后,我从加载的 csv 的纬度/经度中读取点。
df = pd.read_csv('kc_house_data_train.csv')
crs = {'init': 'epsg:4326'}
Run Code Online (Sandbox Code Playgroud)
这会将所有点放入一个新的数据框中
geometry = [Point(x,y) for x,y in zip(df.lat,df.long)]
geo_df = gpd.GeoDataFrame(df, # specifify your dataframe
crs = crs, # this is your coordinate system
geometry = geometry) # specify the geometry list we created
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做时
fig, ax = plt.subplots(figsize = (40,40))
kings_county.plot(ax=ax, alpha = 0.4, color = 'grey', aspect = 'auto')
geo_df[geo_df.price >= 750000].plot(ax = ax , markersize = 20, color …Run Code Online (Sandbox Code Playgroud) 我的问题与出版自备笔记本的愿望有关
我的笔记本中有一个Markdown单元格,它引用了一个外部图像文件
so far

so good
Run Code Online (Sandbox Code Playgroud)
是否可以内联MD单元格中的文件内容?
我在Debian Sid笔记本上安装了两个Python,⑴系统的Python(v.2.7)包含一些实用程序包(包括Tkinter)和⑵Anaconda 的Python 3.
很容易看出两个Python发行版可以使用哪些(好吧,这里有多少......)字体.
Python 2
>>> from Tkinter import Tk
>>> from tkFont import families
>>> Tk(); available = families() ### Tk() is needed to have a running tcl interpreter
<Tkinter.Tk instance at 0x7f977bcbfb90>
>>> len(available)
3011
Run Code Online (Sandbox Code Playgroud)
Python 3
>>> from tkinter import Tk
>>> from tkinter.font import families
>>> Tk() ; available = families()
<tkinter.Tk object .>
>>> len(available)
68
Run Code Online (Sandbox Code Playgroud)
在我看来,Anaconda tkinter只关注分发附带的基本X字体,请参阅下面的编辑.
你知道一个程序吗?
tkinter了解系统字体(首选替代品)或tkinter可以使用它们? …我的笔记本里有时会有
from IPython.display import display, HTML
...
display(HTML('<h3>The %s is important!</h3>'%question_of_the_day))
...
Run Code Online (Sandbox Code Playgroud)
但是当我后来将笔记本转换为.pdf(使用 LaTeX 文件的中间步骤)时,我得到的.pdf只是
<IPython.core.display.HTML object>
我的问题是,是否有可能说服jupyter nbconvert --to pdf ...(并最终说服pandoc)转换我以编程方式插入到输出单元中的 HTML 代码片段?
我正在使用 Matplotlib 设计一个三维插图。一切都很好,除了(红色)参数曲线得到错误的 zorder 而(绿色)参数曲面完全正确绘制。
由以下代码生成的输出:

我知道 Matplotlib 在准确计算对象的 zorder 方面的能力有限,但由于它可以为参数曲面执行此操作,因此它似乎是 Matplotlib 中的一个错误。
也就是说,有没有办法强制正确的 z-ordering 只是为了让事情快速工作?似乎我只能说正确的透明蓝色平面位于其他一切之上。但是,将 zorder 参数放入 PolyCollection 似乎没有任何效果,并且将显式 zorder 参数放入绘制读取线的绘图函数中会弄乱其相对于绿色表面的顺序。
有没有办法将正确的蓝色透明表面强加于一切之上?这是我到目前为止的代码:
#!/bin/env python3
from pylab import *
from mpl_toolkits.mplot3d import *
from matplotlib.collections import PolyCollection
from matplotlib.colors import colorConverter
from matplotlib.patches import FancyArrowPatch
rc('text', usetex=True)
rc('font', size=20)
fig = figure(figsize=(11,6))
ax = fig.gca(projection='3d')
ax.set_axis_off()
def f(x,t):
return t/2 * 0.55*(sin(2*x)+0.4*x**2-0.65)
c_plane = colorConverter.to_rgba('b', alpha=0.15)
N = 50
y = linspace(-1,1,N)
t = linspace(0,2,N)
yy, tt = meshgrid(y, t) …Run Code Online (Sandbox Code Playgroud) python ×8
matplotlib ×3
ipython ×2
jupyter ×2
anaconda ×1
aspect-ratio ×1
bash ×1
cartopy ×1
fontconfig ×1
fonts ×1
for-loop ×1
if-statement ×1
markdown ×1
mplot3d ×1
python-2.7 ×1
python-3.5 ×1
shell ×1
subplot ×1
tkinter ×1
xterm ×1