Setting colors to the multiple scatter plot ![]() By default, pyplot returned orange and blue. Note: Notice that the two plots in the figure above gave two different colors. Line 16: The pyplot.show() function is used, which tells pyplot to display both the scatter plots. pyplot.scatter(x,y2) is used to create a scatter plot of x and y2. Lines 12 to 13: The array y2 is created, which contains the y-coordinates for the second scatter plot. pyplot.scatter(x,y1) is used to create a scatter plot of x and y1. Lines 8 to 9: The array y1 is created, which contains the y-coordinates for the first scatter plot. Line 5: The array x is created, containing the x-coordinates common to both plots. Line 2: The numpy module is imported, which will be used to create arrays. It is also possible to use this approach for more than one column to color by, but the legend is getting a mess.Line 1: In matplotlib, the pyplot module is imported, which will be used to create plots. In my case I have timeseries data, so the MultiIndex consists of datetime and categories. This procedure may make more sense for other data series. With this method you do not have to manually specify the colors. Price = Ĭolor =ĭf = pd.DataFrame(dict(carat=carat, price=price, color=color))ĭf.set_index().unstack('color').plot(style='o') This takes the index as the x value, the value as the y value and plots each column separately with a different color.Ī DataFrame in this form can be achieved by using set_index and unstack. Normally when quickly plotting a DataFrame, I use pd.ot(). In the first plot, the default colors are chosen by passing min-max scaled values from the array of category level ints pd.factorize(iris) to the call method of the plt.cm.viridis colormap object. I chose the "tab10" discrete (aka qualitative) colormap here, which does a better job at signaling the color factor is a nominal categorical variable. Plt.legend(handles=handles, title='Color') Levels, categories = pd.factorize(df)Ĭolors = # using the "tab10" colormap To choose your own colormap and add a legend, the simplest approach is this: import matplotlib.patches ![]() In this case "viridis" is not a good default choice because the colors appear to imply a sequential order rather than purely nominal categories. This creates a plot without a legend, using the default "viridis" colormap. Plt.gca().set(xlabel='Carat', ylabel='Price', title='Carat vs. The easiest way is to simply pass an array of integer category levels to the plt.scatter() color parameter. To select a color, I've created a colors dictionary, which can map the diamond color (for instance D) to a real color (for instance tab:blue). It then iterates over these groups, plotting for each one. This code assumes the same DataFrame as above, and then groups it based on color. ot(ax=ax, kind='scatter', x='carat', y='price', label=key, color=colors) If you don't want to use seaborn, use oupby to get the colors alone, and then plot them using just matplotlib, but you'll have to manually assign colors as you go, I've added an example below: fig, ax = plt.subplots(figsize=(6, 6)) sns.lmplot(x='carat', y='price', data=df, hue='color', fit_reg=False) ![]() Selecting hue='color' tells seaborn to split and plot the data based on the unique values in the 'color' column.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |