I make some fake data to illustrate my question:
This is the phone in Chinese:
phone = {"a", "ai", "an", "ang", "ao", "b", "c", "ch", "d", "e", "ei", "en", "eng", "er", "f", "g", "h", "i", "ia", "ian", "iang", "iao", "ie", "ii", "iii", "in", "ing", "iong", "iou", "j", "k", "l", "m", "n", "o", "ong", "ou", "p", "q", "r", "s", "sh", "sil", "sp", "t", "u", "ua", "uai", "uan", "uang", "uei", "uen", "ueng", "uo", "v", "van", "ve", "vn", "x", "z", "zh"}
Let every phone in phone list have a vector that is similar phone has similar vector
data = Table[RandomVariate[ NormalDistribution[u, 0.3], {100, 2}], {u, (ToCharacterCode[#][[1]] - 97) + 0.5*RandomReal[] & /@ phone}]; ListPlot[data, PlotLegends -> PointLegend[97, phone, LegendMarkerSize -> 15]] (*ListPlot[data, PlotLegends -> PointLegend[97, phone, LegendMarkerSize -> 15], ColorFunctionScaling -> False]*) (*Nothing changed*)
You can find that there are many color are similar even it looks different.(marked in Box)
I want the color look like this that similar phone has similar color(marked in Box)
The color of ListPlot
according to the PlotLegends
maybe like this(the color is not beautiful~)
Graphics[{EdgeForm[Gray], Table[{ColorData["TemperatureMap", t/Length@phone], Text[phone[[t]], {2 t, 1.5}, {-1, 0}, {0, 1}], Disk[{2 t, 0}, .9]}, {t, Length@phone}]}]
How to do this?