How can I make this plot's x-axis looks better?
Is there any way to show only 3 values in x-axis while plotting all values in my dataframe?
I tried using plt.xticks(rotation=70) but it still cuts my numbers..
As you can see, it shows the date in the format MMM DD YYYY.
I wanna something like MMM DD or DD MMM. Or even writing in 2
lines DD MM \n YYYY.
How can I achieve that?
This is the code used for generating the chart:
plt.plot(df_21d["Timestamp"], df_21d["Close"], label="Price", color="b")
plt.title("BTC - 21 Dias")
plt.xlabel("Data")
plt.ylabel("Preco (em USD)")
plt.grid(True)
plt.show()
Here's my data:
df_21d["Timestamp"]
667 2016-05-27 08:00:00
668 2016-05-27 08:30:00
669 2016-05-27 09:00:00
670 2016-05-27 09:30:00
671 2016-05-27 10:00:00
Name: Timestamp, dtype: datetime64[ns]
df_21d["Close"]
667 480.00
668 471.36
669 477.35
670 476.55
671 479.92
Name: Close, dtype: float64
I dont know if I have to format df_21d.Timestamp or if it's a matplotlib configuration. Maybe formatting the timestamp and passing it as a vector using plt.xticks()... but I'm not sure about how do that...
Or maybe even inserting only the first, the last and the middle value for the x-axis, with something like:
plt.xaxis_labels = (df_21d["Timestamp"][1],
df_21d["Timestamp"][len(df_21d["Timestamp"])/2],
df_21d["Timestamp"][len(df_21d["Timestamp"])])
解决方案
Essentially, you can set the format of dates by setting the format:
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%d %m'))