Установка начальной точки на графике журнала [дубликат]

Когда я не должен писать ключевое слово 'inline' для функции / метода в C ++?

Если функция определена в файле .cpp, вы должны not записать ключевое слово.

Когда компилятор не знает, когда нужно сделать функцию / метод 'inline'?

Такой ситуации нет. Компилятор не может сделать функцию встроенной. Все, что он может сделать, это вставить некоторые или все вызовы функции. Он не может этого сделать, если у него нет кода функции (в этом случае компоновщик должен сделать это, если он в состоянии это сделать).

Имеет ли значение, если приложение многопоточно, когда вы пишете 'inline' для функции / метода?

Нет, это вообще не имеет значения.

41
задан Ruggero Turra 25 January 2013 в 22:46
поделиться

3 ответа

import matplotlib
from matplotlib import pyplot as plt
fig1, ax1 = plt.subplots()
ax1.plot([10, 100, 1000], [1,2,3])
ax1.set_xscale('log')
ax1.set_xticks([20, 200, 500])
ax1.get_xaxis().set_major_formatter(matplotlib.ticker.ScalarFormatter())

или

ax1.get_xaxis().get_major_formatter().labelOnlyBase = False
plt.show()

44
ответ дан asmeurer 25 August 2018 в 07:21
поделиться

Я собираюсь добавить несколько сюжетов и показать, как удалить минорные тики:

OP:

from matplotlib import pyplot as plt

fig1, ax1 = plt.subplots()
ax1.plot([10, 100, 1000], [1,2,3])
ax1.set_xscale('log')
ax1.set_xticks([20, 300, 500])
plt.show()

Чтобы добавить некоторые специальные тики, как указано tcaswell , вы можете использовать matplotlib.ticker.ScalarFormatter :

from matplotlib import pyplot as plt
import matplotlib.ticker

fig1, ax1 = plt.subplots()
ax1.plot([10, 100, 1000], [1,2,3])
ax1.set_xscale('log')
ax1.set_xticks([20, 300, 500])
ax1.get_xaxis().set_major_formatter(matplotlib.ticker.ScalarFormatter())
plt.show()

Чтобы удалить минорные тики, вы можете использовать matplotlib.rcParams['xtick.minor.size'] :

from matplotlib import pyplot as plt
import matplotlib.ticker

matplotlib.rcParams['xtick.minor.size'] = 0
matplotlib.rcParams['xtick.minor.width'] = 0

fig1, ax1 = plt.subplots()
ax1.plot([10, 100, 1000], [1,2,3])
ax1.set_xscale('log')
ax1.set_xticks([20, 300, 500])
ax1.get_xaxis().set_major_formatter(matplotlib.ticker.ScalarFormatter())

plt.show()

Вы можете использовать вместо этого ax1.get_xaxis().set_tick_params , он имеет тот же эффект (но только изменяет текущую ось, а не все будущие цифры в отличие от matplotlib.rcParams):

from matplotlib import pyplot as plt
import matplotlib.ticker

fig1, ax1 = plt.subplots()
ax1.plot([10, 100, 1000], [1,2,3])
ax1.set_xscale('log')
ax1.set_xticks([20, 300, 500])
ax1.get_xaxis().set_major_formatter(matplotlib.ticker.ScalarFormatter())

ax1.get_xaxis().set_tick_params(which='minor', size=0)
ax1.get_xaxis().set_tick_params(which='minor', width=0) 

plt.show()

9
ответ дан Community 25 August 2018 в 07:21
поделиться

set_xticks работает, если посмотреть внимательно, он ставит основные тики на 20, 200, 500 (тики длиннее остальных). Сравните с тем же сюжетом без вызова set_xticks.

Дело в том, что set_xticks задает тики, а не метки. Если вы хотите, чтобы метки добавили

ax1.set_xticklabels(["20", "200", "500"])

перед plt.show ()

4
ответ дан Francesco Montesano 25 August 2018 в 07:21
поделиться
Другие вопросы по тегам:

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