- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
假设我正在绘制具有两种不同表面颜色的东西,如下所示的红色和蓝色。我想向图例添加两个项目,其中包含自定义字符串和我的集合中每种颜色的颜色。
我该怎么做?
# generate the plot
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import numpy as np
from numpy import random
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)
col1, col2 = cm.jet(np.array([0.1, 0.9]))
my_choice = random.choice([0, 1], size=X.shape)
my_color = my_choice[..., None] * col1[None, None, :] + (1 - my_choice)[..., None] * col2[None, None, :]
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, facecolors = my_color,
linewidth=0, antialiased=False)
ax.set_zlim(-1.01, 1.01)
# customstrings for legend:
myLegendLabels = {0: 'very red', 1: 'very blue'}
最佳答案
您可以使用 "proxy artists" 来做到这一点:
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import numpy as np
from numpy import random
# generate the plot
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)
col1, col2 = cm.jet(np.array([0.1, 0.9]))
my_choice = random.choice([0, 1], size=X.shape)
my_color = my_choice[..., None] * col1[None, None, :] + (1 - my_choice)[..., None] * col2[None, None, :]
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, facecolors = my_color,
linewidth=0, antialiased=False)
ax.set_zlim(-1.01, 1.01)
# Add legend with proxy artists
col1_patch = mpatches.Patch(color=col1, label='very blue')
col2_patch = mpatches.Patch(color=col2, label='very red')
plt.legend(handles=[col1_patch, col2_patch])
结果:
关于python - 表面图 : Add legend to facecolors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48988717/
我有一个等高线图,我想使用具有纯白色背景的图例,以便图例在等高线上可读。 我的问题是,当我更改面部颜色时,没有任何反应。我也尝试过更改framealpha,但没有任何反应。这是一个玩具代码和结果图。如
我想绘制一个 4 维的 matplotlib 曲面图。最初,我会将数据放在: [(X, Y, Z, P)] 所以我想要一个 3D 表面,但有一个颜色图,由 P 的值表示。 我看到了一个很好的解决方案来
假设我正在绘制具有两种不同表面颜色的东西,如下所示的红色和蓝色。我想向图例添加两个项目,其中包含自定义字符串和我的集合中每种颜色的颜色。 我该怎么做? # generate the plot from
首先,我试图在 matplotlib 中绘制球谐函数,正如它们在 mayavi 中所见:http://docs.enthought.com/mayavi/mayavi/auto/example_sph
谁能解释一下为什么下面的代码在设置图形的facecolor时不起作用? import matplotlib.pyplot as plt # create figure instance fig1 =
我正在尝试让我的 jupyter/python/%matplotlib 图表在深色背景下工作。我想为完整图像设置白色背景颜色,而不是默认透明。 %matplotlib notebook import
我正在尝试使用 facecolors 以预定义的颜色为表面着色 3D。这里的问题是 cm.ScalarMappable 规范化表面 V 的颜色,而 plt.cm.jet 不规范化,因此颜色和颜色条不匹
我在网格中有一些数据,我用 streamplot 绘制流线图,颜色和宽度与速度相关。如何更改箭头的颜色或仅更改边缘颜色?我的目标是强调流向。如果有人有其他方法可以做到这一点.. 我尝试使用c.arro
我需要使用 pcolormesh 引入一个非常量 alpha 值(imshow 是先验的而不是可能的替代品,因为我需要对轴使用对数刻度——因此沿每个坐标的间距不规则)。 正在关注 this post
rcParams['legend.frameon'] = 'False' 是否有一种用给定颜色填充图例区域背景的简单方法。更具体地说,我不希望在图例区域看到网格,因为它会干扰文本阅读。 关键字 fra
我无法控制使用 Matplotlib 绘制的直方图的颜色和线条样式 hist功能与 stacked=True .对于单个非堆叠直方图,我没有问题: import pylab as P mu, sigm
我希望同一个对象被渲染两次,一次在屏幕上,一次在屏幕外。屏幕上的网格有一个几何体和一个 MeshLambertMaterial。该 Material 具有 vertexColors: THREE.Ve
上一个问题涉及使用 savefig() 以与屏幕上显示的相同的面色(背景色)保存,即: fig = plt.figure() fig.patch.set_facecolor('blue') fig.s
我正在使用 matplotlib 样式,当在组合框中选择样式时,我尝试动态更改样式。我使用的是 Matplotlib 2.2.3、Python 3.6.6、PyQt5、Windows 10。但是当我选
我正在使用 matplotlib plt.text 函数将文本框添加到我的直方图中。在 bbox 参数中,我指定了 boxstyle、facecolor、edgecolor 和 alpha .但是,当
我是一名优秀的程序员,十分优秀!