@@ -474,7 +474,8 @@ points_kmeans_init = alt.Chart(penguin_data).mark_point(size=75, filled=True, op
474
474
alt.X("flipper_length_standardized").title("Flipper Length (standardized)"),
475
475
alt.Y("bill_length_standardized").title("Bill Length (standardized)"),
476
476
alt.Color('label:N').legend(None),
477
- alt.Shape('label:N').legend(None)
477
+ alt.Shape('label:N').legend(None).scale(range=['square', 'circle', 'triangle']),
478
+ alt.Size('label:O').legend(None).scale(type='ordinal', range=[50, 50, 100]),
478
479
)
479
480
480
481
glue('toy-kmeans-init-1', points_kmeans_init, display=True)
@@ -491,6 +492,7 @@ An example random initialization is shown in {numref}`toy-kmeans-init-1`
491
492
:name: toy-kmeans-init-1
492
493
493
494
Random initialization of labels.
495
+ Each cluster is depicted as a different color and shape.
494
496
:::
495
497
496
498
``` {code-cell} ipython3
@@ -523,20 +525,22 @@ def plot_kmean_iterations(iterations, data, centroid_init):
523
525
pd.concat(dfs),
524
526
width=200,
525
527
height=200
526
- ).mark_point(filled=True, size=75 , opacity=1).encode(
528
+ ).mark_point(filled=True, size=50 , opacity=1).encode(
527
529
alt.X("flipper_length_standardized").scale(domain=(-2, 2)),
528
530
alt.Y("bill_length_standardized").scale(domain=(-2, 2)),
529
531
alt.Color('label:N').legend(None),
530
- alt.Shape('label:N').legend(None)
532
+ alt.Shape('label:N').legend(None).scale(range=['square', 'circle', 'triangle']),
533
+ alt.Size('label:O').legend(None).scale(type='ordinal', range=[50, 50, 100]),
531
534
)
532
535
533
- centroids = points.mark_point(size=200, filled=True, stroke='black', strokeWidth=1.5 ).encode(
536
+ centroids = points.mark_point(filled=True, stroke='black', strokeWidth=1.25 ).encode(
534
537
alt.X("mean(flipper_centroid)")
535
538
.scale(domain=(-2, 2))
536
539
.title("Flipper Length (standardized)"),
537
540
alt.Y("mean(bill_centroid)")
538
541
.scale(domain=(-2, 2))
539
- .title("Flipper Length (standardized)")
542
+ .title("Bill Length (standardized)"),
543
+ size=alt.value(200)
540
544
)
541
545
542
546
return (points + centroids).facet(
@@ -617,7 +621,8 @@ points_kmeans_init = alt.Chart(penguin_data).mark_point(size=75, filled=True, op
617
621
alt.X("flipper_length_standardized").title("Flipper Length (standardized)"),
618
622
alt.Y("bill_length_standardized").title("Bill Length (standardized)"),
619
623
alt.Color('label:N').legend(None),
620
- alt.Shape('label:N').legend(None)
624
+ alt.Shape('label:N').legend(None).scale(range=['square', 'circle', 'triangle']),
625
+ alt.Size('label:O').legend(None).scale(type='ordinal', range=[50, 50, 100]),
621
626
)
622
627
623
628
glue('toy-kmeans-bad-init-1', points_kmeans_init, display=True)
@@ -686,14 +691,17 @@ points = alt.Chart(pd.concat(dfs), width=200, height=200).mark_point(filled=True
686
691
.scale(zero=False)
687
692
.title("Bill Length (standardized)"),
688
693
alt.Color('label:N').legend(None),
689
- alt.Shape('label:N').legend(None),
694
+ alt.Shape('label:N').legend(None).scale(range=['square', 'circle', 'triangle', 'cross', 'diamond', 'triangle-right', 'triangle-down', 'triangle-left']),
695
+ alt.Size('label:O').legend(None).scale(type='ordinal', range=[50, 50, 100, 100, 100, 100, 100, 100]),
696
+ # alt.Shape('label:N').legend(None),
690
697
)
691
698
692
699
vary_k = alt.layer(
693
700
points,
694
- points.mark_point(filled=True, size=200, stroke='black', strokeWidth=1).encode(
701
+ points.mark_point(filled=True, stroke='black', strokeWidth=1.25 ).encode(
695
702
alt.X('mean(bill_length_standardized)'),
696
703
alt.Y('mean(flipper_length_standardized)'),
704
+ size=alt.value(200)
697
705
)
698
706
).facet(
699
707
alt.Facet(
0 commit comments