Kann nicht herausfinden, wie einfach Colorbar zu einer Matrix von hexbin
matplotlib
Plots hinzuzufügen. Es ist eine 7 von 7 Matrix von Plots, hier ist ein Teil des Codes für die erste Reihe:Matplotlib Hexbin hinzufügen Farbbalken - für Dummies
#importing nec. libs
import pandas as pd
from pylab import rcParams
from matplotlib import pyplot as PLT
%matplotlib inline
#reading data
dataset_cat_coded_path = 'C:/Users/IBM_ADMIN/Documents/Sberbank/dataset_cat_coded.csv'
dataset_cat_coded = pd.read_csv(dataset_cat_coded_path, encoding = 'cp1251')
test_frame = dataset_cat_coded[['opf','priority', 'sales_method_id', 'is_block_vks','sector_id', 'segment_id', 'org_type_id']]
#building figure
rcParams['figure.figsize']=30,30 #fig. size
#fig. initiation
fig = PLT.figure()
#setting parameters defining min and max luminance
vmin = 0
vmax=test_frame.shape[0]
#building a row of plots
ax1 = fig.add_subplot(7,7,2)
ax1.hexbin(test_frame.opf, test_frame.priority,C=None,gridsize=12,bins=None,mincnt=1, vmin = vmin, vmax=vmax)
ax1.set_title('priority')
ax1.set_ylabel('OPF')
ax2 = fig.add_subplot(7,7,3)
ax2.hexbin(test_frame.opf, test_frame.sales_method_id,C=None,gridsize=12,bins=None,mincnt=1, vmin = vmin, vmax=vmax)
ax2.set_title('sales_method_id')
ax3 = fig.add_subplot(7,7,4)
ax3.hexbin(test_frame.opf, test_frame.is_block_vks,C=None,gridsize=12,bins=None,mincnt=1, vmin = vmin, vmax=vmax)
ax3.set_title('is_block_vks')
ax4 = fig.add_subplot(7,7,5)
ax4.hexbin(test_frame.opf, test_frame.sector_id,C=None,gridsize=12,bins=None,mincnt=1, vmin = vmin, vmax=vmax)
ax4.set_title('sector_id')
ax5 = fig.add_subplot(7,7,6)
ax5.hexbin(test_frame.opf, test_frame.segment_id,C=None,gridsize=12,bins=None,mincnt=1, vmin = vmin, vmax=vmax)
ax5.set_title('segment_id')
ax6 = fig.add_subplot(7,7,7)
ax6.hexbin(test_frame.opf, test_frame.org_type_id,C=None,gridsize=12,bins=None,mincnt=1, vmin = vmin, vmax=vmax)
ax6.set_title('org_type_id')
#colorbar attempt
cbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7])
fig.colorbar(ax6, cax=cbar_ax, location='bottom') here
Fehlertext:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-17-e885eb3cd39a> in <module>()
36
37 cbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7])
---> 38 fig.colorbar(ax6, cax=cbar_ax, location='bottom')
C:\Program Files\Anaconda3\lib\site-packages\matplotlib\figure.py in colorbar(self, mappable, cax, ax, use_gridspec, **kw)
1591 cax, kw = cbar.make_axes(ax, **kw)
1592 cax.hold(True)
-> 1593 cb = cbar.colorbar_factory(cax, mappable, **kw)
1594
1595 self.sca(current_ax)
C:\Program Files\Anaconda3\lib\site-packages\matplotlib\colorbar.py in colorbar_factory(cax, mappable, **kwargs)
1328 cb = ColorbarPatch(cax, mappable, **kwargs)
1329 else:
-> 1330 cb = Colorbar(cax, mappable, **kwargs)
1331
1332 cid = mappable.callbacksSM.connect('changed', cb.on_mappable_changed)
C:\Program Files\Anaconda3\lib\site-packages\matplotlib\colorbar.py in __init__(self, ax, mappable, **kw)
878 # Ensure the given mappable's norm has appropriate vmin and vmax set
879 # even if mappable.draw has not yet been called.
--> 880 mappable.autoscale_None()
881
882 self.mappable = mappable
AttributeError: 'AxesSubplot' object has no attribute 'autoscale_None'
Resultierendes Grundstück: enter image description here
Es gibt Tonnen von Beispielen da draußen, also was hast du bisher versucht? Außerdem müssen Sie angeben, ob Sie der gesamten Figur eine Farbleiste hinzufügen möchten. Wenn ja, sind die Datenlimits für alle Zahlen gleich? Oder möchtest du eine Farbleiste pro Figur haben? – ImportanceOfBeingErnest
Datenlimits sind gleich, also 1 Farbbalken für die ganze Figur. Um ehrlich zu sein, wenn ich es auch noch vor der Figur selbst machen könnte, wäre das auch ok. Problem ist, ich kann nicht verstehen, welche Argumente in meinem speziellen Fall zu plt.colorbar() übergeben werden, damit es funktioniert. –
@ImportanceOfBeingErnest Lösung bilden die Seite, die Sie verwiesen haben 'cbar_ax = fig.add_axes ([0,85, 0,15, 0,05, 0,7]) fig.colorbar (im, cax = cbar_ax)' gibt Fehler * 'AxesSubplot 'object hat kein Attribut' autoscale_None '* –