Когда я столкнулся с этой ошибкой в Visual Studio,
«При установлении соединения с SQL Server возникла связанная с сетью или конкретная ошибка экземпляра. Сервер не найден или не был доступен. Проверьте правильность имени экземпляра и настройте SQL Server для удаленного подключения. (поставщик: поставщик Named Pipes, ошибка: 40 - не удалось открыть соединение с SQL Server) »
blockquote>... это было во время выполнения следующего кода C #, который пытался получите данные SQL Server, чтобы отобразить их в сетке. Разрыв произошел именно в строке, которая говорит connect.Open ():
using (var connect = Connections.mySqlConnection) { const string query = "SELECT Name, Birthdate, Narrative FROM Friends"; using (var command = new SqlCommand(query, connect)) { connect.Open(); using (var dr = command.ExecuteReader()) { while (dr.Read()) { // blah } } } }
Это было необъяснимо, потому что SQL-запрос был очень простым, у меня была правильная строка подключения, и сервер базы данных был доступен. Я решил запустить сам SQL-запрос вручную в SQL Management Studio, и он прошел отлично и дал несколько записей. Но в результатах запроса оставалось одно: в тексте типа «varchar (max) в таблице« Друзья »был некорректно закодированный текст HTML (в частности, некоторые закодированные символы комментариев сортировки
<!--
, помещенные в данные столбца« Повествование » ). Строка подозрительных данных выглядела так:Name Birthdate Narrative ==== ========= ============== Fred 21-Oct-79 <!--HTML Comment -->Once upon a time...
Обратите внимание на кодированный HTML-символ «
<
», который означал «& lt;» персонаж. Как-то это пробилось в базу данных, и мой код на C # не смог его забрать! Он провалился каждый раз прямо на линии connect.Open ()! После того, как я вручную отредактировал эту одну строку данных в таблице базы данных «Друзья» и поместил в декодированный «& lt;» характер, все сработало! Вот как должна выглядеть эта строка:Name Birthdate Narrative ==== ========= ============== Fred 21-Oct-79 <!--HTML Comment -->Once upon a time...
Я отредактировал одну плохую строку, которую я использовал, используя этот простой оператор UPDATE ниже. Но если у вас было несколько нарушающих строк закодированного HTML, вам может понадобиться более сложная инструкция UPDATE, которая использует функцию REPLACE:
UPDATE Friends SET Narrative = '<!--HTML Comment -->Once upon a time...' WHERE Narrative LIKE '<%'
Итак, мораль истории (по крайней мере, в моем случае) , дезинфицируйте свой HTML-контент, прежде чем хранить его в базе данных, и вы не получите эту загадочную ошибку SQL Server в первую очередь! (Ну, правильная дезинфекция / декодирование вашего HTML-контента является предметом другого обсуждения, достойного отдельного поиска StackOverflow, если вам нужна дополнительная информация!) [/ G6]
В matplotlib 2.x на краях имеется автоматическая граница, которая обеспечивает хорошее соответствие данных в осевых шипах. В этом случае, вероятно, желательно, чтобы этот край был задан на оси y. По умолчанию он установлен в 0.05
в единицах осевого диапазона. Чтобы установить маржу на 0
по оси x, используйте
plt.margins(x=0)
или
ax.margins(x=0)
в зависимости от контекста. Также смотрите документацию .
Если вы хотите избавиться от поля во всем скрипте, вы можете использовать
plt.rcParams['axes.xmargin'] = 0
в начале вашего скрипта (то же самое для y
). Если вы хотите полностью и навсегда избавиться от поля, вам может потребоваться изменить соответствующую строку в файле matplotlib rc .
Альтернативно для изменения полей используйте plt.xlim(..)
или ax.set_xlim(..)
, чтобы вручную установить пределы осей таким образом, чтобы не осталось белого пробела.
plt.rcParams['axes.autolimit_mode'] = 'round_numbers'
. – cqcn1991 11 March 2017 в 05:35