Поле Animal скрыто полем Dog, вы все равно можете получить доступ к полю Animal, указав его так же, как и вы.
Поведение, которое вы ожидаете, может быть достигнуто следующим образом:
public class Main{
public static void main(String args[]){
Animal animal = new Animal();
Animal dog1 = new Dog();
Dog dog2 = new Dog();
System.out.println("Animal object name: " + animal.name);
System.out.println("Dog1 object name: "+dog1.name);
System.out.println("Dog2 object name: " + dog2.name);
animal.print();
dog1.print();
dog2.print();
}
}
class Animal {
String name = "Animal";
public void print(){
System.out.println("I am an: "+name);
}
}
class Dog extends Animal{
public Dog() {
this.name = "Dog"
}
}
Вам просто нужно вызывать функцию вашего графика в любое время с разными значениями.
Я полагаю, что ваши avg
и std
векторы имеют одинаковый размер, потому что они выводятся с той же функцией extract_statistics
. У вас может возникнуть проблема с вашим вектором x
. Возможно, размер этого вектора не соответствует размеру векторов avg
и std
.
В следующем решении мы имеем три пары векторов avg
и std
: 50, 200, 600. Мы объединяем 3 вектора в один вектор y
и e
. Итак, на каждой итерации следующего цикла for
мы используем один и тот же вектор x
для трех разных индексов из векторов y
и e
. Для этого мы предполагаем, что вектор x
и каждый элемент из y
и e
имеют одинаковый размер.
Когда мы называем что-то вроде y[:,0]
, например, мы нарезаем вектор y
и получение всех значений первого столбца этого вектора.
times_alg_1_sparse = times_alg1['Sparse']
avg_alg1_50_sparse, std_alg1_50_sparse = extract_statistics(times_alg_1_sparse.iloc[0])
avg_alg1_200_sparse, std_alg1_200_sparse = extract_statistics(times_alg_1_sparse.iloc[1])
avg_alg1_600_sparse, std_alg1_600_sparse = extract_statistics(times_alg_1_sparse.iloc[2])
x = np.array(times_alg_1_sparse.index)
y = np.array([avg_alg1_50_sparse*1000, avg_alg1_200_sparse*1000, avg_alg1_600_sparse*1000])
e = np.array([std_alg1_50_sparse*1000, std_alg1_200_sparse*1000, std_alg1_600_sparse*1000])
colors = ['red', 'green', 'blue']
for k in range(3):
plt.errorbar(x, y[:,k], e[:,k], mfc=colors[k], linestyle='solid', marker='^', color=colors[k])
plt.ylim(0)
plt.show()
Вы пытаетесь использовать subplots
. Что указано, если вы хотите построить на одном рисунке более одного графика.
extract_statistics
, но, вероятно, она генерирует векторы разных размеров, в то время как все ваши векторы должны быть одинаковыми. Я отредактирую свой ответ, чтобы лучше объяснить. – Lorran Sutter 15 July 2018 в 00:01