Графическое изображение простых данных в R

Вы можете добавить состояние к этому компоненту, которое является логическим значением, которое переключает себя

class Card extends Component {
  constructor(props) {
    this.state = {
    showFront: true
  }
}...

И затем использовать ваш метод handleClick для переключения состояния назад и вперед

handleClick = (e) => {
  this.setState({showFront: !this.state.showFront})
}

И в вашей функции рендеринга вы можете добавить условное отображение

render() {
  return (
    
{ this.state.showFront ?

{this.props.front}

:

{this.props.back}

}
); }

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

В комментарии сказано, что вы должны использовать setState(updater()) и не передавать объект. Это правда, что когда приложение становится более сложным, у вас есть несколько обновлений состояния вместе, и состояния данных могут не соответствовать вашим ожиданиям, функция updater является подходящей (setState является асинхронной и может выполнять пакетные вызовы, поэтому мы имеем функция, которая сбрасывает все и помогает нам поддерживать целостность состояний, сравнивая старые состояния с новыми.

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

вы можете использовать функцию обновления в любое время, даже когда вам угодно - даже для самого простого изменения состояния. И, как сказано здесь , может быть, лучше всего всегда использовать его :)

для дополнительной информации React.Compoment setState & amp; Функция обновления

19
задан theycallmemorty 23 July 2009 в 13:09
поделиться

5 ответов

Вам не нужны две строки:

scale <- data[1]
serial <- data[2]

как scale и serial уже установлены из заголовков в read.table .

Также scale <- data [1] создает элемент из data.frame

  data[1]
1     5
2    10
3    12
4    15

, тогда как scale из read.table является векторным

5 10 12 15

, а функция plot (scale, serial) ожидает вектор, а не data.frame , поэтому вам просто нужно выполнить

plot(scale, serial)

Один подход к нанесению других столбцов данных на ось Y:

plot(scale,serial, ylab="")
par(new=TRUE) 
plot(scale,spawn,axes=F, ylab="", type="b")
par(new=TRUE) 
plot(scale,for., axes=F, ylab="", type="b")
par(new=TRUE) 
plot(scale,worker,axes=F, ylab="", type="b")

Вероятно, есть способы сделать это лучше, но это выходит за рамки моих нынешних знаний о R ....

12
ответ дан 30 November 2019 в 04:16
поделиться

Я далеко не специалист по R, но думаю, вам нужен data.frame:

plot(data.frame(data[1],data[2]))

Это действительно хотя бы нарисуйте что-нибудь в моей настройке R!

Следуя совету в ответе luapyad, я придумал это. Я переименовал заголовок в «масштаб»:

scaling, serial, spawn, for, worker
5, 0.000178, 0.000288, 0.000292, 0.000300
10, 0.156986, 0.297926, 0.064509, 0.066297
12, 2.658998, 6.059502, 0.912733, 0.923606
15, 188.023411, 719.463264, 164.111459, 161.687982

, затем:

foo <- read.table("foo.csv", header=T,sep=",")
attach(foo)
plot( scaling, serial );
2
ответ дан 30 November 2019 в 04:16
поделиться

Попробуйте следующее:

data <- read.csv('foo.csv')
plot(serial ~ scale, data)
dev.new()
plot(spawn ~ scale, data)
dev.new()
plot(for. ~ scale, data)
dev.new()
plot(worker ~ scale, data)
2
ответ дан 30 November 2019 в 04:16
поделиться

Расширенная отладка

Отображение

Уже упомянутые атрибуты DebuggerDisplay и DebuggerBrowsable управляют видимостью элементов и отображаемым текстовым значением. Простое переопределение ToString () заставит отладчик использовать вывод этого метода.

Если вам нужен более сложный вывод, вы можете использовать / создать Debugger Visualizer , несколько примеров доступны здесь .

Son Of Strike

Microsoft предоставляет расширение отладчика, известное как SOS . Это чрезвычайно мощное (хотя и часто сбивающее с толку) расширение, которое является отличным способом диагностики «утечек», точнее, нежелательных ссылок на объекты, которые больше не требуются.

Сервер символов для исходного кода инфраструктуры

Следуя этим инструкциям позволит вам пройти через исходный код некоторых частей инфраструктуры.

Изменения в 2010 году

В Visual Studio 2010 есть несколько улучшений и новых функций:

5
ответ дан 30 November 2019 в 04:16
поделиться

В вашем примере

plot(scale, serial) 

не будет работать, потому что масштаб и последовательный оба являются фреймами данных, например

class(scale)
[1] "data.frame"

Вы можете попробовать следуя и используйте points () , как только график был создан, чтобы построить оставшиеся столбцы. Обратите внимание, что я использовал параметр ylim на графике , чтобы учесть диапазон в третьем столбце.

data <- read.csv('foo.csv', header=T)
plot(data$scale, data$serial, ylim=c(0,750))
points(data$scale, data$spawn, col='red')
points(data$scale, data$for., col='green')
points(data$scale, data$worker, col='blue')
7
ответ дан 30 November 2019 в 04:16
поделиться
Другие вопросы по тегам:

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