Меня удивляет, что это еще не упоминалось, поэтому для полноты ...
Вы можете выполнить распаковку списка с помощью оператора «splat»: *
, который также будет скопируйте элементы вашего списка.
old_list = [1, 2, 3]
new_list = [*old_list]
new_list.append(4)
old_list == [1, 2, 3]
new_list == [1, 2, 3, 4]
Очевидным недостатком этого метода является то, что он доступен только в Python 3.5 +.
Сроки, однако, это работает лучше, чем другие распространенные методы.
x = [random.random() for _ in range(1000)]
%timeit a = list(x)
%timeit a = x.copy()
%timeit a = x[:]
%timeit a = [*x]
#: 2.47 µs ± 38.1 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
#: 2.47 µs ± 54.6 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
#: 2.39 µs ± 58.2 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
#: 2.22 µs ± 43.2 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
Хэдли объясняет это на стр. 99; 133 его книги ggplot2 (1-е издание) или стр. 160 - 161, если у вас есть второе издание
Проблема в том, что, как вы говорите limits
внутри шкалы или настройки ylim
заставляет данные удаляться, поскольку они ограничивают данные. Для истинного масштабирования (сохранить все данные) вам необходимо установить пределы внутри декартовой системы координат. Подробнее см.: http://docs.ggplot2.org/current/coord_cartesian.html
ggplot(d, aes(x, y, group=grp)) + geom_line() +
coord_cartesian(ylim=c(0, 7))
[/g3]
geom_boxplot
? – Everettss 18 December 2017 в 09:03coord_cartesian
по-прежнему является опцией сgeom_boxplot
или другими геометриями. – eipi10 30 April 2018 в 19:26