Есть ли какой-либо инструмент для оптимизации схемы mysql?

Я просмотрел исходный код matplotlib. Плохая новость заключается в том, что не существует простого способа установить равные размеры точек в легенде. Это особенно сложно с диаграммами рассеяния (неправильно: см. Обновление ниже). Существуют две альтернативы:

  1. Измените код maplotlib
  2. Добавьте преобразование в объекты PathCollection, представляющие точки на изображении. Трансформация (масштабирование) должна учитывать исходный размер.

Ни одно из них не очень весело, хотя # 1 кажется более простым. scatter

import matplotlib.pyplot as plt
import numpy as np

def rand_data():
    return np.random.uniform(low=0., high=1., size=(100,))

# Generate data.
x1, y1 = [rand_data() for i in range(2)]
x2, y2 = [rand_data() for i in range(2)]

plt.figure()
plt.plot(x1, y1, 'o', label='first', markersize=np.sqrt(20.), c='b')
plt.plot(x2, y2, 'o', label='second', markersize=np.sqrt(35.), c='r')
# Plot legend.
lgnd = plt.legend(loc="lower left", numpoints=1, fontsize=10)

#change the marker size manually for both lines
lgnd.legendHandles[0]._legmarker.set_markersize(6)
lgnd.legendHandles[1]._legmarker.set_markersize(6)
plt.show()

Это дает:

[/ g] g11] enter image description here [/g0]

Кажется, что вы хотели.

Изменения:

  • scatter изменены на plot, который изменяет масштаб маркера (следовательно, sqrt) и делает невозможным использование изменяемого размера маркера (если это было предназначено)
  • размер маркера изменен вручную, чтобы быть 6 точками для обоих маркеров в легенде

Как вы можете видеть, это использует скрытые свойства подчеркивания (_legmarker) и является ошибкой-уродливым. Он может сломаться при любом обновлении в matplotlib.

Обновить

Хаа, я нашел его. Лучше взломать:

import matplotlib.pyplot as plt
import numpy as np

def rand_data():
    return np.random.uniform(low=0., high=1., size=(100,))

# Generate data.
x1, y1 = [rand_data() for i in range(2)]
x2, y2 = [rand_data() for i in range(2)]

plt.figure()
plt.scatter(x1, y1, marker='o', label='first', s=20., c='b')
plt.scatter(x2, y2, marker='o', label='second', s=35., c='r')
# Plot legend.
lgnd = plt.legend(loc="lower left", scatterpoints=1, fontsize=10)
lgnd.legendHandles[0]._sizes = [30]
lgnd.legendHandles[1]._sizes = [30]
plt.show()

Теперь _sizes (другое свойство подчеркивания) делает трюк. Не нужно прикасаться к источнику, хотя это довольно хак. Но теперь вы можете использовать все scatter.

enter image description here [/g1]

0
задан tejesh s 13 July 2018 в 13:29
поделиться

2 ответа

Инструмент

, №. Советы, да:

Index Cookbook RK's RoTs

Кроме того, здесь вы можете задать конкретные запросы. Предоставьте SHOW CREATE TABLE и EXPLAIN SELECT ...

0
ответ дан Rick James 17 August 2018 в 12:44
поделиться
0
ответ дан Tom Shir 17 August 2018 в 12:44
поделиться
Другие вопросы по тегам:

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