Я могу избегать использования кадров данных в ggplot2?

Я отредактировал ваш код, и вот то, что вы ожидали, пожалуйста, посмотрите, что я использовал стиль position, чтобы выровнять его по правому краю, поместив два button в один div <div class="pushRight"> и добавив стили для этого div ]

body {
  margin: 0;
  background-color: #222222;
}

.todoContainer {
  display: flex;
  align-items: center;
  outline: none;
  border: 0;
  border-radius: 0;
  border-bottom: 1px dotted #666666;
  padding-bottom: 5px;
  margin-bottom: 15px;
  position: relative;
}

.todoContent {
  font-size: 25px;
  color: #ffffff;
}

.btnTodoAction {
  cursor: pointer;
  text-align: center;
  text-decoration: none;
  outline: none;
  width: 40px;
  height: 40px;
  padding: 8px;
  border-radius: 40px;
  border: 0;
  background: #2a2a2a;
  color: #555555;
}
.pushRight{
  position: absolute;
  right:0
}

.todoIsCompleted>.todoContent {
  position: relative;
  color: #666666;
}

.todoIsCompleted>.todoContent::before {
  position: absolute;
  content: "";
  left: 0;
  top: 50%;
  right: 0;
  border-top: 2px solid #85bf6b;
}

.todoIsCompleted>.btnToggleTodoState {
  color: #85bf6b;
}
<div class="todoContainer">
  <button class="btnTodoAction btnToggleTodoState">T</button>
  <span class="todoContent">Item 1</span>
  <div class="pushRight">
  <button class="btnTodoAction">E</button>
  <button class="btnTodoAction">D</button>
  </div>
</div>

<div class="todoContainer todoIsCompleted">
  <button class="btnTodoAction btnToggleTodoState">T</button>
  <span class="todoContent">Item 2</span>
   <div class="pushRight">
  <button class="btnTodoAction">E</button>
  <button class="btnTodoAction">D</button>
  </div>
</div>

24
задан Kasper Thystrup Karstensen 29 May 2018 в 11:11
поделиться

3 ответа

Краткий ответ - «Нет», вы не можете избежать создания кадра данных. GGPlot требует, чтобы данные были в кадре данных. Если вы используете qplot , вы можете дать ему отдельные векторы для x и y, но внутри страны, но он все еще создает кадр данных из параметров, которые вы проходите.

Я согласен с предложением Juba - учиться Чтобы использовать функцию Reshape , или лучше, но в упаковке Reshape с расплавленным / Chast функции. Как только вы быстро получите данные в длинном формате, создавая удивительные GGPLOT графиков, становится одним шагом ближе!

15
ответ дан 29 November 2019 в 00:06
поделиться

Вы можете использовать функцию reshape для преобразования вашего фрейма данных в «длинный» формат. Может быть, это немного быстрее, чем ваш код?

R> reshape(d, direction="long",varying=list(c("k1","k2")),v.names="k",times=c("k1","k2"))
     iter time   k id
1.k1    1   k1 0.2  1
2.k1    2   k1 0.6  2
1.k2    1   k2 0.3  1
2.k2    2   k2 0.4  2
4
ответ дан 29 November 2019 в 00:06
поделиться

Так что просто добавлю к предыдущим ответам. С помощью qplot вы можете сделать

p <- qplot(y=d$k2, x=d$k1)

и затем оттуда построить его, например, с

p + theme_bw()

Но я согласен - расплавление / отливка - это, как правило, путь вперед.

3
ответ дан 29 November 2019 в 00:06
поделиться
Другие вопросы по тегам:

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