Как у меня есть линейный график рассеяния Y-оси Matplotlib? [Дубликат]

Java имеет пул строк, в котором Java управляет распределением памяти для объектов String. См. String Pools в Java

Когда вы проверяете (сравниваете) два объекта с помощью оператора ==, он сравнивает равенство адресов в пуле строк. Если два объекта String имеют одинаковые адреса, то он возвращает true, в противном случае false. Но если вы хотите сравнить содержимое двух объектов String, вы должны переопределить метод equals.

equals - фактически метод класса Object, но он переопределяется в класс String и дается новое определение, которое сравнивает содержимое объекта.

Example:
    stringObjectOne.equals(stringObjectTwo);

Но помните, что это относится к случаю String. Если вы хотите сравнить регистр без учета регистра, вы должны пойти для метода equalsIgnoreCase класса String.

Давайте посмотрим:

String one   = "HELLO"; 
String two   = "HELLO"; 
String three = new String("HELLO"); 
String four  = "hello"; 

one == two;   // TRUE
one == three; // FALSE
one == four;  // FALSE

one.equals(two);            // TRUE
one.equals(three);          // TRUE
one.equals(four);           // FALSE
one.equalsIgnoreCase(four); // TRUE

3
задан Matthijs Kramer 7 November 2017 в 11:27
поделиться

1 ответ

Данные считываются как строки. В matplotlib 2.0 они автоматически преобразуются в числа с плавающей точкой, так что они могут быть построены.

В matplotlib 2.1 введены категориальные графики . Это теперь позволяет что-то вроде

plt.plot(["apple", "banana", "cherry"], [2,1,3])

. Хотя это, конечно, отлично подходит для определенных приложений, оно прерывает предыдущий вариант построения строк, которые можно преобразовать в float. Я думаю, что если это хорошо, это просто дает пользователю ответственность за само преобразование.

В этом случае вы хотели бы сделать это преобразование, например

values = [None if v is '' else float(v) for v in values]
7
ответ дан Mr. T 15 August 2018 в 14:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: