Heatmap: Как показать, сколько наблюдений было в каждой ячейке? [Дубликат]

Это сообщение об ошибке отображается при возникновении ошибки в запросе, которая привела к сбою. Он проявится при использовании:

  • mysql_fetch_array / mysqli_fetch_array()
  • mysql_fetch_assoc() / mysqli_fetch_assoc()
  • mysql_num_rows() / mysqli_num_rows()

Примечание. Эта ошибка вызывает не , если на ваш запрос не влияет строка. Только запрос с недопустимым синтаксисом генерирует эту ошибку.

Шаги устранения неполадок

  • Убедитесь, что ваш сервер разработки настроен на отображение всех ошибок. Вы можете сделать это, разместив это в верхней части своих файлов или в вашем файле конфигурации: error_reporting(-1); . Если у вас есть какие-либо синтаксические ошибки, это укажет вам.
  • Используйте mysql_error() . mysql_error() сообщит о любых ошибках MySQL, возникающих при выполнении вашего запроса. Пример использования:
    mysql_connect($host, $username, $password) or die("cannot connect"); 
    mysql_select_db($db_name) or die("cannot select DB");
    
    $sql = "SELECT * FROM table_name";
    $result = mysql_query($sql);
    
    if (false === $result) {
        echo mysql_error();
    }
    
  • Запустите запрос из командной строки MySQL или с помощью инструмента, такого как phpMyAdmin . Если у вас есть синтаксическая ошибка в вашем запросе, это скажет вам, что это такое.
  • Убедитесь, что ваши кавычки верны. Отсутствие цитаты вокруг запроса или значения может привести к сбою запроса.
  • Убедитесь, что вы избегаете своих значений. Цитаты в вашем запросе могут привести к сбою запроса (а также оставить вас открытым для SQL-инъекций). Используйте mysql_real_escape_string() , чтобы избежать ввода.
  • Убедитесь, что вы не смешиваете функции mysqli_* и mysql_*. Они не то же самое и не могут использоваться вместе.

Другие советы

mysql_* функции не должны для нового кода. Они больше не поддерживаются, и сообщество приступило к процессу осушки . Вместо этого вы должны узнать о подготовленных операторах и использовать либо PDO , либо MySQLi . Если вы не можете решить, эта статья поможет выбрать. Если вы хотите узнать, вот хороший учебник PDO .

10
задан Tgsmith61591 15 October 2015 в 20:36
поделиться

3 ответа

Эта функция только что добавлена ​​в недавнюю версию Seaborn 0.7.1.

Из История обновлений Seaborn :

] Параметр annot heatmap () теперь принимает прямоугольный набор данных в дополнение к булевскому значению. Если передается набор данных, его значения будут использоваться для аннотаций, тогда как основной набор данных будет использоваться для цветов ячейки тепловой карты

. Вот пример

data = np.array([[0.000000,0.000000],[-0.231049,0.000000],[-0.231049,0.000000]])
labels =  np.array([['A','B'],['C','D'],['E','F']])
fig, ax = plt.subplots()
ax = sns.heatmap(data, annot = labels, fmt = '')

Примечание: fmt = '' необходимо, если вы используете нечисловые метки, поскольку значение по умолчанию - fmt = '. 2g', что имеет смысл только для числовых значений и приведет к ошибке для текстовых меток ,

19
ответ дан ojy 3 September 2018 в 15:00
поделиться

Я не думаю, что это возможно в текущей версии. Если вы столкнулись с временным решением hack-y, вы можете сделать следующее ...

# Create the 1st heatmap without labels 
sns.heatmap(data=df1, annot=False,)

# create the second heatmap, which contains the labels,
# turn the annotation on,
# and make it transparent
sns.heatmap(data=df2, annot=True, alpha=0.0)

Обратите внимание, что может возникнуть проблема с окраской ваших текстовых меток. Здесь я создал пользовательский cmap, чтобы все метки были равномерно черными.

3
ответ дан Sebastian 3 September 2018 в 15:00
поделиться

aanot_kws в Seaborn выполняет другую цель, а именно обеспечивает доступ к , как отображаются аннотации , а не , что отображается

import matplotlib.pyplot as plt
import seaborn as sns

sns.set()
fig, ax = plt.subplots(1,2)
ata = np.array([[0.000000,0.000000],[-0.231049,0.000000],[-0.231049,0.000000]])
sns.heatmap(data, vmin=-0.231049, vmax=0, annot=True, fmt='f', annot_kws={"size": 15}, ax=ax[0])
sns.heatmap(data, vmin=-0.231049, vmax=0, annot=True, fmt='f', annot_kws={"size": 10}, ax=ax[1]);

2
ответ дан Sergey Bushmanov 3 September 2018 в 15:00
поделиться
Другие вопросы по тегам:

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