假设我运行以下脚本:
import matplotlib.pyplot as plt
lineWidth = 20
plt.figure()
plt.plot([0,0],[-1,1], lw=lineWidth, c='b')
plt.plot([-1,1],[-1,1], lw=lineWidth, c='r')
plt.plot([-1,1],[1,-1], lw=lineWidth, c='g')
plt.show()
Run Code Online (Sandbox Code Playgroud)
这产生以下结果:
如何指定图层的从上到下的顺序,而不是让我选择Python?
我正在运行此示例脚本,并进行了以下修改:
import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt
mpl.rcParams['legend.fontsize'] = 10
fig = plt.figure()
ax = fig.gca(projection='3d')
theta = np.linspace(-4 * np.pi, 4 * np.pi, 100)
z = np.linspace(-2, 2, 100)
r = z**2 + 1
x = r * np.sin(theta)
y = r * np.cos(theta)
ax.plot(x, y, z, label='parametric curve')
ax.legend()
ax.set_xlabel('$X$', fontsize=20, rotation=150)
ax.set_ylabel('$Y$')
ax.set_zlabel(r'$\gamma$', fontsize=30, rotation=60)
ax.yaxis._axinfo['label']['space_factor'] = 3.0
plt.show()
Run Code Online (Sandbox Code Playgroud)
如何将轴刻度调整为我选择的轴刻度?即,我如何让z轴仅标记为2,0和-2,以及我想要的字体大小?我知道如何在2D而不是3D中执行此操作.
上面的脚本产生以下内容:
为什么x轴标签失真,我想用这个脚本做,但不是z轴标签(gamma)?这根本不符合逻辑.我需要在希腊字母中标注这个轴.我该如何解决?
如果我运行这个脚本:
import matplotlib.pyplot as plt
import pylab as plab
plt.figure()
plt.plot([0,2], [2,0], color='c', lw=0.5)
plt.plot([1,2], [2,1], color='k', lw=0.5)
plt.arrow(1,1,0.5,0.5, head_width=0.1, width=0.01, head_length=0.1, color='r')
plt.arrow(1.25,0.75,0.5,0.5, head_width=0.1, width=0.01, head_length=0.1, color='g')
plab.axes().set_aspect(0.5)
plt.show()
Run Code Online (Sandbox Code Playgroud)
我明白了:
请注意,箭头的背面与从 (1,2) 延伸到 (2,1) 的黑线齐平。这是有道理的,但我希望箭头的背面在视觉上垂直于尾部而不改变纵横比。我该怎么做呢?
import numpy as np
from scipy.integrate import odeint
from scipy.signal import find_peaks
Run Code Online (Sandbox Code Playgroud)
第三行触发以下错误:
ImportError: cannot import name find_peaks
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?我没有对我所知道的 scipy 包进行任何更改。另外值得注意的是,仅导入 scipy.signal 不会产生错误。
我决定尝试一下这个示例代码。我能够弄清楚如何在两个子图之间绘制一条直线,即使该线位于其中一个子图的边界之外。
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
fig = plt.figure(figsize=(10, 5))
ax1 = fig.add_subplot(121)
ax2 = fig.add_subplot(122)
axs = [ax1, ax2]
# Fixing random state for reproducibility
np.random.seed(19680801)
# generate some random test data
all_data = [np.random.normal(0, std, 100) for std in range(6, 10)]
# plot violin plot
axs[0].violinplot(all_data,
showmeans=False,
showmedians=True)
axs[0].set_title('Violin plot')
# plot box plot
axs[1].boxplot(all_data)
axs[1].set_title('Box plot')
# adding horizontal grid lines
for ax in axs:
ax.yaxis.grid(True)
ax.set_xticks([y + …Run Code Online (Sandbox Code Playgroud) x <- list("item one", "item two", "item three")
Run Code Online (Sandbox Code Playgroud)
如果我想在 Python 中选择除最后一项之外的所有项,我会使用x[:-1]. 我如何在 R 中执行此操作?
my_dictionary = {'a':1}
try:
my_dictionary['b']
except KeyError as e:
raise KeyError('Bad key:' + str(e))
Run Code Online (Sandbox Code Playgroud)
显然,该代码会引发KeyError:
Traceback (most recent call last):
File "----.py", line 11, in <module>
my_dictionary['b']
KeyError: 'b'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "----.py", line 13, in <module>
raise KeyError('Bad key:' + str(e))
KeyError: "Bad key:'b'"
Run Code Online (Sandbox Code Playgroud)
虽然我理解 Python 需要说明该except部分如何创建自己的错误,但我希望首先KeyError不要显示这一点。我想出的一个解决方法是:
my_dictionary = {'a':1}
err_msg = None
try:
my_dictionary['b']
except KeyError as e:
err_msg = …Run Code Online (Sandbox Code Playgroud) 在我以某种方式获得3D多边形实际绘图的过程中,我遇到了以下脚本(编辑:稍微修改):在python-matplotlib中绘制3D多边形
from mpl_toolkits.mplot3d import Axes3D
from matplotlib.collections import Poly3DCollection
import matplotlib.pyplot as plt
fig = plt.figure()
ax = Axes3D(fig)
x = [0,1,1,0]
y = [0,0,1,1]
z = [0,1,0,1]
verts = [zip(x, y,z)]
ax.add_collection3d(Poly3DCollection(verts),zs=z)
plt.show()
Run Code Online (Sandbox Code Playgroud)
但是当我运行它时,我收到以下错误消息:
TypeError: object of type 'zip' has no len()
Run Code Online (Sandbox Code Playgroud)
看起来这可能是Python 2对3的事情,因为我在Python 3中运行,而且该帖子已有五年了.所以我将第三行到最后一行改为:
verts = list(zip(x, y, z))
Run Code Online (Sandbox Code Playgroud)
现在verts显示在变量列表中,但我仍然收到错误:
TypeError: zip argument #1 must support iteration
Run Code Online (Sandbox Code Playgroud)
什么?我该如何解决?