I'll start with a slightly reformatted version of your data:
data = {{"Monday", 3}, {"Tuesday", 4}, {"Wednesday", 6}, {"Thursday", 6}, {"Friday", 10},
{"Saturday", 12}, {"Sunday", 11}, {"Monday", 3}, {"Tuesday", 4}, {"Wednesday", 4},
{"Thursday", 5}, {"Friday", 10}, {"Saturday", 10}, {"Sunday", 9}, {"Monday", 2},
{"Tuesday", 3}, {"Wednesday", 3}, {"Thursday", 5}, {"Friday", 9}, {"Saturday", 8},
{"Sunday", 7}, {"Monday", 1}, {"Tuesday", 3}, {"Wednesday", 3}, {"Thursday", 4},
{"Friday", 8}, {"Saturday", 8}, {"Sunday", 6}};
Define a list of the days of the week:
$days = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
Gather and sort the data:
dt = #[[All, 2]] & /@ SortBy[GatherBy[data /. Thread[$days -> Range[7]], First], #[[1, 1]] &]
{{3, 3, 2, 1}, {4, 4, 3, 3}, {6, 4, 3, 3}, {6, 5, 5, 4}, {10, 10, 9, 8},
{12, 10, 8, 8}, {11, 9, 7, 6}}
(I used this particular method instead of using Partition[], since it can easily be used if the number of sample days are unequal (e.g. three Mondays, seven Tuesdays, etc.))
Having done this, the "cycle plot" can be generated this way:
Graphics[{Directive[AbsolutePointSize[3], AbsoluteThickness[1]],
MapIndexed[With[{i = First[#2], m = Mean[#1]},
{ColorData[1, i], Line[{{i - 1, m}, {i, m}}],
Through[{Line, Point}[Transpose[{Range[i - 1, i, 1/(Length[#1] - 1)],
#1}]]]}] &, dt]},
AspectRatio -> 1/GoldenRatio, Frame -> True,
FrameTicks -> {{True, None},
{Transpose[{Range[7] - 1/2, Style[#, Small] & /@ $days}], None}}]

For
data = Join[Drop[data, 3], {{"Monday", 6}, {"Tuesday", 9}}];
here's the result of the cycle plot:

Encapsulating the procedure as a routine, as well as adding spacers between the daily plots, is left as an exercise to the reader.
Here's a generalization some of you might appreciate:
(* 2011 daily stock prices for Pfizer *)
data = FinancialData["NYSE:PFE", {{2011, 1, 1}, {2011, 12, 31}}];
dd = Map[#[[All, 2]] &, SortBy[GatherBy[#,
Developer`CalendarData[First[#], "DayOfWeekNumber"] &],
Developer`CalendarData[#[[1, 1]], "DayOfWeekNumber"] &]] & /@
SplitBy[data, Developer`CalendarData[First[#], "MonthNumber"] &];
$months = {"January", "February", "March", "April", "May", "June", "July", "August",
"September", "October", "November", "December"};
Partition[MapIndexed[
Function[{da, k},
Graphics[{Directive[AbsolutePointSize[3], AbsoluteThickness[1]],
MapIndexed[With[{i = First[#2], m = Mean[#1]},
{ColorData[1, i], Line[{{i - 1, m}, {i, m}}],
Through[{Line, Point}[Transpose[{Range[i - 1, i, 1/(Length[#1] - 1)], #1}]]]}] &,
da]},
AspectRatio -> 1/GoldenRatio, Frame -> True, FrameTicks -> {{True, None},
{Transpose[{Range[5] - 1/2, Style[#, Tiny] & /@ Take[$days, 5]}], None}},
PlotLabel -> Extract[$months, k]]], dd], 4] // GraphicsGrid

DateListPlot– David Slater Oct 23 '12 at 0:54