1

i have a data of csv Longitude,latitude and labels

      Longitude  Latitude
0    106.895231 -6.302275
1    106.900976 -6.285152
2    106.873755 -6.237447
3    106.894059 -6.238875
4    106.820816 -6.311941
..          ...       ...
225  106.938847 -6.131683
226  106.937381 -6.109117
227  106.932118 -6.147447
228  106.958474 -6.155166
229  106.862266 -6.129799

and labels

0                         TMII
1      Monumen Pancasila Sakti
2            Taman Simanjuntak
3          Mall Cipinang Indah
4       Kebun Binatang Ragunan
                ...           
225            Not Categorized
226            Not Categorized
227            Not Categorized
228            Not Categorized
229            Not Categorized
Name: Wisata, Length: 230, dtype: object

then i have a matplotlib that shows a cursor figure with the cod below

X, Y, labels = df['Latitude'], df['Longitude'], df['Wisata']
Total = df['Wisata'].sum()
fig, ax = plt.subplots()
line, = ax.plot(X, Y, 'ro')

# for color in ['tab:red','tab:green','tab:blue','tab:purple','tab:forestgreen',
#           'tab:maroon','tab:sienna','tab:steelblue','tab:hotpink','tab:darkorchid',
#           'tab:navy','tab:orange','tab:lime','tab:black','tab:turquoise',
#           'tab:salmon','tab:magenta','tab:gold','tab:brown','tab:grey']:
#     n = Total
#     x, y = np.random.rand(2, n)
#     scale = 200.0 * np.random.rand(n)
#     ax.scatter(x, y, c=color, s=scale, label=Total,
#                alpha=0.3, edgecolors='none')

# ax.legend()
# ax.grid(True)

#plt.scatter(X, y, c=labels, cmap=plt.colors.ListedColormap(mcolors))

mpl.cursor(ax).connect(
    "add", lambda sel: sel.annotation.set_text(labels[sel.index]))

plt.show()

output for now I want to give every dots different color based on different labels that i have (currently there is 20 different labels).

Any suggestions of correct way to do that?

2
  • I think this is what you are looking for ? stackoverflow.com/questions/26139423/… Commented Dec 24, 2022 at 11:07
  • Thankyouu yes it is, could you tell me how? im facing a lot of error to do it Commented Dec 24, 2022 at 14:17

1 Answer 1

1

As per this answer... For every label you need to designate a colour. You have not provided all of your labels, but it could look something like this:

# Make sure you have a colour for each label
colours = {'TMII':'red', 'Monumen Pancasila Sakti':'green', 'Taman Simanjuntak':'blue', 'Mall Cipinang Indah':'purple', 'Kebun Binatang Ragunan':'orange'}

ax.scatter(X, Y, c=labels.map(colours))
plot.show()

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.