我花了很长时间研究如何让两个子图共享相同的y轴,并在Matplotlib中共享两个单色条.
正在发生的事情是,当我打电话给colorbar()在任一功能subplot1或者subplot2,它会自动缩放的情节使得彩条加的情节会适合进入"插曲"包围盒内部,造成两个并排侧地块是两个非常不同的大小.
为了解决这个问题,我尝试创建了第三个子图,然后我将其修改为不存在只有一个颜色条存在的图.唯一的问题是,现在这两个地块的高度和宽度是不均匀的,我无法弄清楚如何使它看起来没问题.
这是我的代码:
from __future__ import division
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import patches
from matplotlib.ticker import NullFormatter
# SIS Functions
TE = 1 # Einstein radius
g1 = lambda x,y: (TE/2) * (y**2-x**2)/((x**2+y**2)**(3/2))
g2 = lambda x,y: -1*TE*x*y / ((x**2+y**2)**(3/2))
kappa = lambda x,y: TE / (2*np.sqrt(x**2+y**2))
coords = np.linspace(-2,2,400)
X,Y = np.meshgrid(coords,coords)
g1out = g1(X,Y)
g2out = g2(X,Y)
kappaout = kappa(X,Y)
for i in range(len(coords)):
for …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个相关矩阵。创建矩阵工作正常,直到我尝试添加颜色条。
这是我当前的代码:
def corr_matrix(data):
'''function to find the mean for days'''
data=data.ix[:,1:].corr(method='pearson')
row_lab=[]
col_lab=[]
for i in data:
row_lab.append(i)
col_lab.append(i)
column_labels = col_lab
row_labels = row_lab
data=np.round(data.corr(method='pearson').abs(), decimals=2)
data=np.array(data)
fig, ax = plt.subplots()
plt.axis('tight')
heatmap = ax.pcolor(data, cmap='RdPu'),
plt.colorbar(mappable=heatmap) # put the major ticks at the middle of each cell
ax.set_xticks(np.arange(data.shape[0])+0.5, minor=False)
ax.set_yticks(np.arange(data.shape[1])+0.5, minor=False)
ax.invert_yaxis()
ax.xaxis.tick_top()
ax.set_xticklabels(row_labels, minor=False, rotation=90)
ax.set_yticklabels(column_labels, minor=False)
plt.show()
Run Code Online (Sandbox Code Playgroud)
我努力了plt.colorbar()。这也行不通。任何帮助都会很棒!
我看过这个问题:AttributeError while add colorbar in matplotlib但答案似乎不起作用:(
这是我的错误:
Traceback (most recent call last):
File …Run Code Online (Sandbox Code Playgroud)