Pandas 为组合散点图创建不同的色条

Pandas 为组合散点图创建不同的色条,pandas,matplotlib,colorbar,scatter,Pandas,Matplotlib,Colorbar,Scatter,每个散点图可以对应两个色条吗?我不明白为什么第二个散点图创建了第二个颜色条,但使用了前一个图的颜色贴图 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({

每个散点图可以对应两个色条吗?我不明白为什么第二个散点图创建了第二个颜色条,但使用了前一个图的颜色贴图

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)

熊猫绘图会自动完成很多事情,但事后更改并不总是那么容易。在这种情况下,pandas不考虑使用两次相同的
ax
,而是调用
plt.colorbar
两次

如果需要对结果进行操作,则通常更容易直接使用matplotlib创建绘图。请注意,第二个颜色条绘制得离绘图最近。因此,以下代码中的顺序已更改

将熊猫作为pd导入
将matplotlib.pyplot作为plt导入
图=plt.图(num=1,clear=True)
ax=图添加_子批次()
数据帧({'a':范围(10),'b':范围(10),'c':范围(10)})
数据帧({'a':范围(1,11),'b':范围(10),'c':范围(10)})
d_散射=最大散射(x=d['a'],y=d['b'],c=d['c'],cmap='GnBu')
e_散射=最大散射(x=e['a'],y=e['b'],c=e['c'],cmap='RdPu')
plt.色条(e_散射)
plt.彩色条(d_散射)
plt.show()

PS:当有多个颜色条时,这些颜色条也可以显式地放入它们自己的子批次中。这样可以更好地控制相互距离。特别是当有3个或更多的色条时,否则事情看起来会很难看

将熊猫作为pd导入
将matplotlib.pyplot作为plt导入
图,轴=plt.子批次(ncols=3,gridspec_kw={'width_ratios':[15,1,1]})
数据帧({'a':范围(10),'b':范围(10),'c':范围(10)})
数据帧({'a':范围(1,11),'b':范围(10),'c':范围(10)})
d_散点=轴[0]。散点(x=d['a'],y=d['b'],c=d['c'],cmap='GnBu')
e_散射=轴[0]。散射(x=e['a'],y=e['b'],c=e['c'],cmap='RdPu')
plt.colorbar(d_散射,cax=轴[1])
plt.colorbar(e_散射,cax=轴[2])
plt.show()