ChatGPT解决这个技术问题 Extra ChatGPT

Replace X-axis with own values

I have a question regarding the command plot().

Is there a way to fully eliminate the x-axis and replace it with own values? I know that I can get rid of the axis by doing

plot(x,y, xaxt = 'n')

and then add an axis with

axis(side = 1 etc.)

However, when I add the axis, obviously it still refers to the data plotted as 'x'. I would only like to plot the 'y'-values and add the x-axis my own in the sense of just "drawing" the x-axis with own values specified. Is there any way to do that?

The background of this question is that my two data frames differ in their length and therefore I cannot plot them.

Do you want to plot vectors with different lengths or just want to set the x label by yourself? Could you provide an example or give more information about the datset?
You might also want to see how to combine two data frames together. You might be able to make more plots from your data and probably probably make the data more informative.

t
tim_yates

Not sure if it's what you mean, but you can do this:

plot(1:10, xaxt = "n", xlab='Some Letters')
axis(1, at=1:10, labels=letters[1:10])

which then gives you the graph:

https://i.stack.imgur.com/glqej.png


Thanks Tim! Not exactly what I was looking for but it helped my do what I wanted =)
x and y are the same length in this case. how do you draw n labels when the length of the other axis is m?
just for reference: the xaxt="n" option in the plot command suppresses the labeling of the x-axis. If this option is not included, axis will be a NOOP.
This works, but how do I rotate it so it is vertical? las=2 doesn't work.
I tried the solution. xaxt = "n" option worked for ts-class time series. But, in the case of multiple time series (mts-class) it did not work.
u
user9869932

You could set labels = FALSE inside axis(...) and then print the labels in a separate command using text(...). This option would allow you to rotate the text in case you need it.

lablist<-as.vector(c(1:10))
axis(1, at=seq(1, 10, by=1), labels = FALSE)
text(seq(1, 10, by=1), par("usr")[3] - 0.2, labels = lablist, srt = 45, pos = 1, xpd = TRUE)

Detailed explanation here

https://i.stack.imgur.com/j35Lv.gif