This answer has two codes:
1. placing the texts at some absolute y values, and
2. placing the texts at some fractions of the height of the axis.
It is fairly easy to add the vertical lines around the `nodes near coords` via `append after command`. The current output isn't pretty but in principle this syntax allows you to produce the target plot.
```
\documentclass{standalone}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\usepgfplotslibrary{dateplot}
\pgfplotsset{compat=1.17}
%\definecolor{myuniversity}{RGB}{59, 33, 130}
\begin{filecontents*}[overwrite]{VIX.dat}
date variable
2021-04-23 18.50
2021-04-22 18.71
2021-04-21 17.50
2021-04-20 18.68
2021-04-19 17.29
2021-04-16 16.25
2021-04-15 16.57
2021-04-14 16.99
2021-04-13 16.65
2021-04-12 16.91
2021-04-09 16.69
2021-04-08 16.95
2021-04-07 17.16
2021-04-06 18.12
2021-04-05 17.91
2021-04-01 17.33
2021-03-31 19.40
2021-03-30 19.61
2021-03-29 20.74
2021-03-26 18.86
2021-03-25 19.81
2021-03-24 21.20
2021-03-23 20.30
2021-03-22 18.88
2021-03-19 20.95
2021-03-18 21.58
2021-03-17 19.23
2021-03-16 19.79
2021-03-15 20.03
2021-03-12 20.69
2021-03-11 21.91
2021-03-10 22.56
2021-03-09 24.03
2021-03-08 25.47
2021-03-05 24.66
2021-03-04 28.57
2021-03-03 26.67
2021-03-02 24.10
2021-03-01 23.35
2021-02-26 27.95
2021-02-25 28.89
2021-02-24 21.34
2021-02-23 23.11
2021-02-22 23.45
2021-02-19 22.05
2021-02-18 22.49
2021-02-17 21.50
2021-02-16 21.46
2021-02-12 19.97
2021-02-11 21.25
2021-02-10 21.99
2021-02-09 21.63
2021-02-08 21.24
2021-02-05 20.87
2021-02-04 21.77
2021-02-03 22.91
2021-02-02 25.56
2021-02-01 30.24
2021-01-29 33.09
2021-01-28 30.21
2021-01-27 37.21
2021-01-26 23.02
2021-01-25 23.19
2021-01-22 21.91
2021-01-21 21.32
2021-01-20 21.58
2021-01-19 23.24
2021-01-15 24.34
2021-01-14 23.25
2021-01-13 22.21
2021-01-12 23.33
2021-01-11 24.08
2021-01-08 21.56
2021-01-07 22.37
2021-01-06 25.07
2021-01-05 25.34
2021-01-04 26.97
2020-12-31 22.75
2020-12-30 22.77
2020-12-29 23.08
2020-12-28 21.70
2020-12-24 21.53
2020-12-23 23.31
\end{filecontents*}
\begin{filecontents*}[overwrite]{mydates.dat}
date Label position
2021-02-24 {It was\\ a good\\ day} 30
2021-01-10 {Market's\\ hangover} 35
2020-12-31 {Happy\\ new\\ year} 30
2020-12-24 {Merry\\ Xmas} 35
\end{filecontents*}
\begin{document}
\begin{tikzpicture}%[width=20cm,height=8cm]
\begin{axis}[
date coordinates in=x,
date ZERO=2020-12-23,
xticklabel=\month-\day, %\year,
xticklabel style={rotate=90},
enlarge x limits=false,
%ymin=0,
xmin=2020-12-23, %date ZERO
xmax=2021-03-24,
]
%The time serie
\addplot[smooth,no markers] table [x=date,y=variable] {VIX.dat};
%The dates where I need a vertical line + label
% So far I just have the label
% The vertical line shoule be based on date in mydates.dat
% no rendering so far.
\addplot[no marks,draw=none,
nodes near coords,
point meta=explicit symbolic,
%visualization depends on={value \thisrow{position}\as\mypos},
every node near coord/.append style={font=\small\sffamily,
align=center,
alias=tmp,
append after command={(tmp|-current axis.north)
edge (tmp.north) (tmp|-current axis.south)
edge (tmp.south)}}
] table [x=date,
y=position,meta=Label] {mydates.dat};
\end{axis}
\end{tikzpicture}
\end{document}
```
![Screen Shot 2021-04-26 at 10.58.26 AM.png](/image?hash=b717d55709a921fbb061cdf903fe6764ef1bac6ff4a87a5de51cea4ba43df764)
You can also use a `scatter plot` (recall that `nodes near coords` is also a `scatter plot`) to draw the lines and position the nodes at some fraction of the vertical dimension of the plot. (Note that you currently have to set `y expr` to something reasonable by hand. The styles of the edges and nodes can be controlled via the `edges` and `vnodes` keys.)
```
\documentclass{standalone}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\usepgfplotslibrary{dateplot}
\pgfplotsset{compat=1.17}
\pgfplotsset{vertical markers/.code={\pgfplotsset{vmarks/.cd,#1}%
\def\pv##1{\pgfkeysvalueof{/pgfplots/vmarks/##1}}%
\pgfplotsset{scatter,only marks,mark=none,
scatter/@pre marker code/.append code={%
\coordinate[overlay] (\pv{tmp name});
\path[draw=none] (\pv{tmp name}|-current axis.south) --
node[pos=\mypos,/pgfplots/vmarks/node style]
(\pv{tmp name}'){\mylabel}
(\pv{tmp name}|-current axis.north)
(\pv{tmp name}'.north) edge[/pgfplots/vmarks/edge style]
(\pv{tmp name}'.north|-current axis.north)
(\pv{tmp name}'.south) edge[/pgfplots/vmarks/edge style]
(\pv{tmp name}'.south|-current axis.south);
},
}%
},
vmarks/.cd,tmp name/.initial=tmp,edge style/.style={draw,solid},
edges/.code={\pgfplotsset{vmarks/edge style/.append style={#1}}},
node style/.style={},
vnodes/.code={\pgfplotsset{vmarks/node style/.append style={#1}}}
}
%\definecolor{myuniversity}{RGB}{59, 33, 130}
\begin{filecontents*}[overwrite]{VIX.dat}
date variable
2021-04-23 18.50
2021-04-22 18.71
2021-04-21 17.50
2021-04-20 18.68
2021-04-19 17.29
2021-04-16 16.25
2021-04-15 16.57
2021-04-14 16.99
2021-04-13 16.65
2021-04-12 16.91
2021-04-09 16.69
2021-04-08 16.95
2021-04-07 17.16
2021-04-06 18.12
2021-04-05 17.91
2021-04-01 17.33
2021-03-31 19.40
2021-03-30 19.61
2021-03-29 20.74
2021-03-26 18.86
2021-03-25 19.81
2021-03-24 21.20
2021-03-23 20.30
2021-03-22 18.88
2021-03-19 20.95
2021-03-18 21.58
2021-03-17 19.23
2021-03-16 19.79
2021-03-15 20.03
2021-03-12 20.69
2021-03-11 21.91
2021-03-10 22.56
2021-03-09 24.03
2021-03-08 25.47
2021-03-05 24.66
2021-03-04 28.57
2021-03-03 26.67
2021-03-02 24.10
2021-03-01 23.35
2021-02-26 27.95
2021-02-25 28.89
2021-02-24 21.34
2021-02-23 23.11
2021-02-22 23.45
2021-02-19 22.05
2021-02-18 22.49
2021-02-17 21.50
2021-02-16 21.46
2021-02-12 19.97
2021-02-11 21.25
2021-02-10 21.99
2021-02-09 21.63
2021-02-08 21.24
2021-02-05 20.87
2021-02-04 21.77
2021-02-03 22.91
2021-02-02 25.56
2021-02-01 30.24
2021-01-29 33.09
2021-01-28 30.21
2021-01-27 37.21
2021-01-26 23.02
2021-01-25 23.19
2021-01-22 21.91
2021-01-21 21.32
2021-01-20 21.58
2021-01-19 23.24
2021-01-15 24.34
2021-01-14 23.25
2021-01-13 22.21
2021-01-12 23.33
2021-01-11 24.08
2021-01-08 21.56
2021-01-07 22.37
2021-01-06 25.07
2021-01-05 25.34
2021-01-04 26.97
2020-12-31 22.75
2020-12-30 22.77
2020-12-29 23.08
2020-12-28 21.70
2020-12-24 21.53
2020-12-23 23.31
\end{filecontents*}
\begin{filecontents*}[overwrite]{mydates.dat}
date Label position
2021-02-24 {It was\\ a good\\ day} 0.5
2021-01-10 {Market's\\ hangover} 0.5
2020-12-31 {Happy\\ new\\ year} 0.3
2020-12-24 {Merry\\ Xmas} 0.7
\end{filecontents*}
\begin{document}
\begin{tikzpicture}%[width=20cm,height=8cm]
\begin{axis}[
date coordinates in=x,
date ZERO=2020-12-23,
xticklabel=\month-\day, %\year,
xticklabel style={rotate=90},
enlarge x limits=false,
%ymin=0,
xmin=2020-12-23, %date ZERO
xmax=2021-03-24,
]
%The time serie
\addplot[smooth,no markers] table [x=date,y=variable] {VIX.dat};
%The dates where I need a vertical line + label
% So far I just have the label
% The vertical line shoule be based on date in mydates.dat
% no rendering so far.
\addplot[visualization depends on={value \thisrow{Label}\as\mylabel},
visualization depends on={value \thisrow{position}\as\mypos},
vertical markers={vnodes={font=\small\sffamily,align=center}}
]
table [x=date,y expr=30] {mydates.dat};
\end{axis}
\end{tikzpicture}
\end{document}
```
![Screen Shot 2021-04-26 at 1.42.28 PM.png](/image?hash=03355655280526818b1e1eb17c46c7e0b56106c00f14099a7c64057295ce424b)