The set-up: I was able to generate some data and I merged it all together into one big matrix (exported and uploaded over here for use in this problem: EDIT: removed). When you download the data I exported, the columns that shouldn't be numeric will be imported as such. You can convert the data using:
bDat = Table[{bDat[[i, 1]], bDat[[i, 2]], ToString[bDat[[i, 3]]], ToString[bDat[[i, 4]]], ToString[bDat[[i, 5]]], ToString[bDat[[i, 6]]], ToString[bDat[[i, 7]]]}, {i, Length@dTry}]
I'm sure there's a more elegant way to do that, but that's what I quickly typed up that worked. Otherwise the plotting won't work. Then, I convert it to a dataset object so I can label the columns as such:
BigDat = Dataset[bDat];
BigDat = BigDat[All, <|"x" -> 1, "y" -> 2, "actual cluster" -> 3, "k means" -> 4,
"k medoids" -> 5, "spectral" -> 6, "agglomerate" -> 7|>];
As a note, all values except those in the "x" and "y" columns should be strings. Now I know if I use GatherBy I could use ListPlot and the data will be colored based on the column that I gathered the data by, like so:
ListPlot[BigDat[GroupBy[Key["actual cluster"]], All, {"x", "y"}]]
The the problem I am having is this: I would like to add plot markers to this plot, but I want the plot markers to be based off another column. For example, I want to color the data by the "actual cluster" column, and then I want to give each point a plot marker based off the "k means" column.
I thought maybe
PlotMarkers -> BigData[All,"k means"]
or
PlotMarkers -> BigDat[GroupBy[Key["k means"]], All, {"x", "y"}]
might work since it gives you the list of values in that column in the former or in the latter, clusters the data by that column, but it didn't work the way I expected. PlotMarkers - Automatic just coordinates the plot markers with the colors, which isn't what I am after either. I'm not very familiar at all about how to use dataset objects or plotting them, so I am having difficulty figuring out how to do this. Any help would be appreciated.
ListPlot
command plots an empty chart for me. $\endgroup$BigDat = BigDat[ All, {"actual cluster" -> ToString, "k means" -> ToString, "k medoids" -> ToString, "spectral" -> ToString, "agglomerate" -> ToString}]
, I get essentially the same plot. $\endgroup$Dataset
- it's super powerful, but with sometimes weird syntax and its own quirks. $\endgroup$