我想colorbar为a 创建一个图例heatmap,使标签位于每个离散颜色的中心.从这里借来的例子:
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.colors import ListedColormap
#discrete color scheme
cMap = ListedColormap(['white', 'green', 'blue','red'])
#data
np.random.seed(42)
data = np.random.rand(4, 4)
fig, ax = plt.subplots()
heatmap = ax.pcolor(data, cmap=cMap)
#legend
cbar = plt.colorbar(heatmap)
cbar.ax.set_yticklabels(['0','1','2','>3'])
cbar.set_label('# of contacts', rotation=270)
# put the major ticks at the middle of each cell
ax.set_xticks(np.arange(data.shape[1]) + 0.5, minor=False)
ax.set_yticks(np.arange(data.shape[0]) + 0.5, minor=False)
ax.invert_yaxis()
#labels
column_labels = list('ABCD')
row_labels = list('WXYZ')
ax.set_xticklabels(column_labels, minor=False) …Run Code Online (Sandbox Code Playgroud) 当光标悬停在matplotlib图上时,是否可以绑定滚轮来放大/缩小?
在下图中我有两个散点图,它们具有不同的数字刻度,因此它们的Y轴标签没有对齐.有什么办法可以在y轴标签上强制水平对齐吗?
import matplotlib.pylab as plt
import random
import matplotlib.gridspec as gridspec
random.seed(20)
data1 = [random.random() for i in range(10)]
data2 = [random.random()*1000 for i in range(10)]
gs = gridspec.GridSpec(2,1)
fig = plt.figure()
ax = fig.add_subplot(gs[0])
ax.plot(data1)
ax.set_ylabel(r'Label One', size =16)
ax = fig.add_subplot(gs[1])
ax.plot(data2)
ax.set_ylabel(r'Label Two', size =16)
plt.show()
Run Code Online (Sandbox Code Playgroud)

在某些LCD显示器上,图例中水平线的颜色很难区分.(见附图).因此,不是在图例中画一条线,是否可以只对文本本身进行颜色编码?换句话说,蓝色为"y = 0x",绿色为"y = 1x"等...
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(10)
fig = plt.figure()
ax = plt.subplot(111)
for i in xrange(5):
ax.plot(x, i * x, label='$y = %ix$' % i)
ax.legend()
plt.show()
Run Code Online (Sandbox Code Playgroud)

PS.如果线条可以在图例中变厚,但在图表中没有,这也可以.
如何将y轴标签和刻度标签涂成红色?
例如,"y-label"和值0到40,用红色着色.

import matplotlib.pyplot as plt
import numpy as np
x = np.arange(10)
fig = plt.figure()
ax = plt.subplot(111)
ax.set_ylabel("y-label")
for i in xrange(5):
ax.plot(x, i * x, label='$y = %ix$' % i)
ax.legend()
plt.show()
Run Code Online (Sandbox Code Playgroud) 任何人都可以帮我弄清楚我的图像自动裁剪脚本中发生了什么?我有一个带有大透明区域/空间的png图像.我希望能够自动裁剪出那个空间并留下必需品.原始图像有一个方形的画布,最好是矩形,只包含分子.
这是原始图片:

做一些谷歌搜索我遇到了报告工作的PIL/python代码,但是在我手中,运行下面的代码过度裁剪图像.
import Image
import sys
image=Image.open('L_2d.png')
image.load()
imageSize = image.size
imageBox = image.getbbox()
imageComponents = image.split()
rgbImage = Image.new("RGB", imageSize, (0,0,0))
rgbImage.paste(image, mask=imageComponents[3])
croppedBox = rgbImage.getbbox()
print imageBox
print croppedBox
if imageBox != croppedBox:
cropped=image.crop(croppedBox)
print 'L_2d.png:', "Size:", imageSize, "New Size:",croppedBox
cropped.save('L_2d_cropped.png')
Run Code Online (Sandbox Code Playgroud)
输出是这样的:
任何更熟悉图像处理/ PLI的人都可以帮我解决这个问题吗?
有没有人知道是否有办法用python包或任何其他python库制作马戏团风格的情节matplotlib?他们不必像示例那样漂亮.
有没有办法增加极坐标刻度标签(theta)的填充/偏移量?
import matplotlib
import numpy as np
from matplotlib.pyplot import figure, show, grid
# make a square figure
fig = figure(figsize=(2, 2))
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8], polar=True, axisbg='#d5de9c')
ax.set_yticklabels([])
r = np.arange(0, 3.0, 0.01)
theta = 2*np.pi*r
ax.plot(theta, r, color='#ee8d18', lw=3)
ax.set_rmax(2.0)
show()
Run Code Online (Sandbox Code Playgroud)
我想让theta tick标签远离极坐标图,这样它们就不会重叠.

我正在尝试使用条形图绘制直方图,并且我很难弄清楚如何将x轴标签与实际的箱子对齐.下面的代码生成以下图表:
如您所见,每个x标签的末尾未与其bin的中心对齐.我正在考虑的方式是:当我应用45度旋转时,标签围绕其几何中心枢转.我想知道是否可以将枢轴移动到标签的顶部.(或者只是将所有标签稍微翻译一下.)
import matplotlib.pyplot as plt
import numpy as np
#data
np.random.seed(42)
data = np.random.rand(5)
names = ['A:GBC_1233','C:WERT_423','A:LYD_342','B:SFS_23','D:KDE_2342']
ax = plt.subplot(111)
width=0.3
bins = map(lambda x: x-width/2,range(1,len(data)+1))
ax.bar(bins,data,width=width)
ax.set_xticks(map(lambda x: x, range(1,len(data)+1)))
ax.set_xticklabels(names,rotation=45)
plt.show()
Run Code Online (Sandbox Code Playgroud) 有没有办法禁用/隐藏底部显示的matplotlib工具栏?
我试过这样的事情:
import matplotlib as mpl
mpl.rcParams['toolbar'] = 'None'
Run Code Online (Sandbox Code Playgroud)
但不幸的是,这没有用.
在Python中,给出了两个对列表:
listA = [ [1,20], [3,19], [37,11], [21,17] ]
listB = [ [1,20], [21,17] ]
Run Code Online (Sandbox Code Playgroud)
如果listB是listA的子集,你如何有效地编写一个返回True的python函数?哦和[1,20]对相当于[20,1]
有谁知道是否有可能在matplotlib中生成这样的图?图像取自以下页面.如果没有,还有另一个'python'解决方案来生成这样的情节?
