Вы не говорите, что он делает и как это не соответствует тому, что вы хотите.
Одна из проблем, с которой вы можете столкнуться, заключается в том, что read.table возвращает фрейм данных, поэтому в вашем коде он пытается построить фрейм данных, а не столбец x внутри фрейма данных. Что происходит, зависит от того, сколько столбцов заканчивается в вашем фрейме данных (что мы не можем угадать из вашего примера).
Если имеется ровно 2 столбца, то создается обычная диаграмма рассеяния (но параметры могут проходить некорректно). Если x1 имеет только один столбец, то создается полосовой график, который сильно отличается от графика рассеяния, создаваемого, когда вы даете один вектор команде plot.default.
Так может быть
plot( x1[[1]], type='l' )
или что-то подобное - это то, что вы хотите.
Если нет, то покажите нам, как выглядит ваш фрейм данных после:
summary(x1)
str(x1)