Защищенные средства:
a) Этот член будет доступен для всех классов в одном пакете с помощью ссылки объекта.
b) Для другого пакета это будет доступно только внутри Подклассы A говорят B и используемая ссылка могут быть экземплярами B или любого подкласса B.
Возьмем пример:
Пусть A - родительский класс в некотором пакете, скажем com.ex1
Пусть B, C - классы в разных пакетах по A say com.ex2
. Кроме того, B extends A
и C extends B
. Мы увидим, как мы можем использовать защищенное поле A внутри B (подкласс A)
Код A:
public class A {
protected int a = 10;
}
Код B:
public class B extends A {
public void printUsingInheritance() {
// Using this
System.out.println(this.a);
}
public void printUsingInstantiation() {
// Using instance of B
B b = new B();
System.out.println(b.a);
// Using instance of C as C is subclass of B
C c = new C();
System.out.println(c.a);
A a = new A();
System.out.println(a.a); // Compilation error as A is not subclass of B
}
}
Код C:
public class C extends B {
}
Для защищенных статических:
Те же правила применяются, за исключением того, что в b) теперь он доступен в любом подклассе класса A по ссылке класса A. [Д0] Ссылка
Я не уверен, правильно ли я понял каждую деталь, но код из фрагмента ниже создаст этот график в блокноте Jupyter:
Сюжет: [115 ]
Код 1 - Мои изменения в вашем образце:
fig.data[0]['hoverinfo'] = 'all'
fig['layout']['yaxis']['scaleanchor']='x'
fig['layout']['xaxis']['gridcolor'] = 'rgba(0, 0, 0, 0)'
fig['layout']['yaxis']['gridcolor'] = 'rgba(0, 0, 0, 0)'
fig['layout']['yaxis']['color'] = 'rgba(0, 0, 0, 0)'
Код 2 - все для простого копирования и вставки:
import numpy as np
import plotly.graph_objs as go
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
init_notebook_mode(connected=True)
import plotly.figure_factory as ff
#%qtconsole
z = np.random.randint(0,6, size=(10, 10))
z_text = np.full(z.shape, '', dtype=str)
d = {0:'a', 1:'b', 2:'c', 3:'d', 4:'e', 5:'f'}
class_mat = np.vectorize(d.get)(z)
fig = ff.create_annotated_heatmap(z, annotation_text=z_text, text=class_mat, hoverinfo='text', colorscale='Viridis', )
fig.layout.title = 'Semantic Segmentation'
# My suggestions:
fig.data[0]['hoverinfo'] = 'all'
fig['layout']['yaxis']['scaleanchor']='x'
fig['layout']['xaxis']['gridcolor'] = 'rgba(0, 0, 0, 0)'
fig['layout']['yaxis']['gridcolor'] = 'rgba(0, 0, 0, 0)'
fig['layout']['yaxis']['color'] = 'rgba(0, 0, 0, 0)'
iplot(fig)
Скорость:
Даже эта маленькая фигура занимает некоторое время, чтобы построить, но так Пока у меня нет никаких предложений о том, как ускорить процесс.