我可以有两个与每个散点图相对应的颜色条吗?我不明白为什么第二个散点图会创建第二个色条,却使用前一个图的色图。
import pandas as pd
import matplotlib.pyplot as plt
fig = plt.figure(num=1, clear=True)
ax = fig.add_subplot()
d = pd.DataFrame({'a': range(10), 'b': range(10), 'c': range(10)})
e = pd.DataFrame({'a': range(1,11), 'b': range(10), 'c': range(10)})
d.plot.scatter(x='a', y='b', c='c', cmap='GnBu', ax=ax)
e.plot.scatter(x='a', y='b', c='c', cmap='RdPu', ax=ax)
熊猫绘图可以自动完成很多事情,但是事后改变并不总是那么容易。在这种情况下,大熊猫没有考虑使用两次相同的次数,ax
而是plt.colorbar
两次调用。
如果需要操纵结果,通常更容易直接使用matplotlib创建图。请注意,第二个颜色栏被绘制为最接近该图。因此,在下面的代码中更改了顺序。
import pandas as pd
import matplotlib.pyplot as plt
fig = plt.figure(num=1, clear=True)
ax = fig.add_subplot()
d = pd.DataFrame({'a': range(10), 'b': range(10), 'c': range(10)})
e = pd.DataFrame({'a': range(1,11), 'b': range(10), 'c': range(10)})
d_scatter = ax.scatter(x=d['a'], y=d['b'], c=d['c'], cmap='GnBu')
e_scatter = ax.scatter(x=e['a'], y=e['b'], c=e['c'], cmap='RdPu')
plt.colorbar(e_scatter)
plt.colorbar(d_scatter)
plt.show()
PS:当有多个颜色条时,也可以将颜色条显式放入其自己的子图中。这样,可以更好地控制相互距离。尤其是当有3个或更多色标时,否则看起来很难看。
import pandas as pd
import matplotlib.pyplot as plt
fig, axes = plt.subplots(ncols=3, gridspec_kw={'width_ratios': [15, 1, 1] })
d = pd.DataFrame({'a': range(10), 'b': range(10), 'c': range(10)})
e = pd.DataFrame({'a': range(1,11), 'b': range(10), 'c': range(10)})
d_scatter = axes[0].scatter(x=d['a'], y=d['b'], c=d['c'], cmap='GnBu')
e_scatter = axes[0].scatter(x=e['a'], y=e['b'], c=e['c'], cmap='RdPu')
plt.colorbar(d_scatter, cax=axes[1])
plt.colorbar(e_scatter, cax=axes[2])
plt.show()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句