Legends for hue in seaborn count plot | Change position [duplicate] - matplotlib

This question already has answers here:
Move seaborn plot legend to a different position
(8 answers)
Closed 3 months ago.
In countplot legend for hue are placed at improper positition:
sns.countplot(x='cat114', hue='loss', data=data_tr)
How do I change legend position?
I tried plt.legend(loc='upper right') but it is not helping me.

g=sns.countplot(x=feature, hue='loss', data=data_tr)
g.figure.get_axes()[0].legend(title='loss',loc='upper right')

Related

How to save charts without cutting off x-axis labels? [duplicate]

This question already has answers here:
matplotlib savefig - text chopped off
(3 answers)
X and Y label being cut in matplotlib plots
(2 answers)
Closed yesterday.
Could you please help me correctly save chart images?
The saved files has axes x-titles that are cut off? See below:
Current Chart Image
I'm currently using:
ax.figure.set_size_inches(16, 9)
#adjusting the tick marks
plt.xticks(rotation=75)
#saving plot
plt.show()
fig.savefig('figure6.png')
plt.clf()

Adjusting histogram in matplotlib [duplicate]

This question already has answers here:
How to create a bar chart/histogram with bar per discrete value?
(1 answer)
Matplotlib xticks not lining up with histogram
(5 answers)
Matplotlib: incorrect histograms
(1 answer)
Python Matplotlib pyplot histogram
(3 answers)
Closed 4 months ago.
I am making a histogram using matplotlib. I am using integer data and I want them to represent 1 bin. The following is the sample code which I made.
import matplotlib.pyplot as plt
a=[1,2,2,3,3,3,4,4,4,4]
plt.figure()
plt.hist(a,bins=4)
plt.show()
The histogram which I got is above. This have left end 1 ad rightend 4. I want the width of the histogram to be 1, however, this will just show 0.75 size. Moreover, I want the x value to locate at the center of the bar of histogram. Is there any way I can adjust?

Seaborn colorbar height to match heatmap [duplicate]

This question already has answers here:
How to set Matplotlib colorbar height for image with aspect ratio < 1
(2 answers)
Set Matplotlib colorbar size to match graph
(9 answers)
Setting the size of a matplotlib ColorbarBase object
(2 answers)
Closed 11 months ago.
There are a few examples showing how to use "shrink" for changing the colorbar. How can I automatically figure out what the shrink should be so the colorbar is equal to the height of the heatmap?
I don't have a matplotlib axis because I am using seaborn and plotting the heatmap from the dataframe.
r = []
r.append(np.arange(0,1,.1))
r.append(np.arange(0,1,.1))
r.append(np.arange(0,1,.1))
df_cm = pd.DataFrame(r)
sns.heatmap(df_cm, square=True, cbar_kws=dict(ticks=[df_cm.min().min(), df_cm.max().max()]))
plt.tight_layout()
plt.savefig(f'test.png', bbox_inches="tight")

How to add horizontal line to a pandas df plot? [duplicate]

This question already has answers here:
Plot a horizontal line on a given plot
(7 answers)
Closed 1 year ago.
I want to draw a line on y=0. However, I am not sure how to do that using pandas built-in charting.
df.mean(axis=1).plot() I am running this and that is the result.
Catch the ax instance returned by plot, and you can use axhline:
ax = df.mean(axis=1).plot()
ax.axhline(0, c='r')
Output:

How to generate color legend for bivariate plots in Seaborn? [duplicate]

This question already has answers here:
Getting legend in seaborn jointplot
(2 answers)
Closed 3 years ago.
When generating bivariate plots like hexbin, pandas generates a legend explaining frequency value for each color shade:
pokemon.plot.hexbin(x='HP', y='Attack', gridsize=30)
I cannot find a similar way to generate such a legend for jointplot and kdeplot in seaborn:
sns.jointplot(data=pokemon, x='HP', y='Attack', kind='hex')
sns.kdeplot(pokemon['HP'], pokemon['Attack'], shade=True)
How can I do it?
for a kdeplot, simply pass cbar=True
cbar : bool, optional
If True and drawing a bivariate KDE plot, add a colorbar.