Why is my data not normally distributed while I have an almost perfect QQ plot and histogram? I am doing a thesis and I am stuck with my statistics on time series data. And when I run a Shapiro test, or any test, it says:
Statistics=0.998, p=0.000
Sample does not look Gaussian (reject H0)

And that it is not normally distributed. But when I look to my QQ plot and histogram the data looks normally distributed. And even when it would not pass the test, it is strange that it results in p = 0.000.
I also have two other groups where the QQ plot and histogram looks way worse than this one, but the tests say those are normally distributed.
I am looking in my script, but I can’t find any mistakes so far. Is it likely that there is something wrong or is it very normal for this data to be nonparametric (even with this graphs)?
I am using Python btw, not R.
QQ plot:

Histogram:

PS. I also have a box plot:


You QQ plot shows that there is departure from normality in the tails of your distribution.  Since you have a very large sample size, your test is able to detect even a relatively minor departure from normality, so it is not surprising that it is rejecting the null hypothesis with a very low p-value.  Your test is correctly identifying that your data do not come from a normal distribution (or their tail behaviour would not look like that).
Incidentally, this is one of the properties of a classical hypothesis test when you use it to test a narrow hypothesis such as this one --- if the hypothesis is even slightly false then the p-value will converge to zero as the sample size becomes large.  Statisticians are therefore cautious when we use hypothesis tests and we are wary of using them to test very narrow hypotheses.  If the null hypothesis is too narrow then it will almost certainly be false, and the test will detect that once you give it enough data.
