Power BI is turning 10! Tune in for a special live episode on July 24 with behind-the-scenes stories, product evolution highlights, and a sneak peek at what’s in store for the future.
Save the dateEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
I'm running this code which you can find in the microsoft learn docs. Only the first row of the matrix has numbers, when they all should have numbers
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
# Load the penguins dataset
penguins = pd.read_csv('https://raw.githubusercontent.com/MicrosoftLearning/dp-data/main/penguins.csv')
# Calculate the correlation matrix
corr = penguins.corr()
# Create a heatmap
sns.heatmap(corr, annot=True)
plt.show()
Result:
Expected result:
Apply advanced data exploration techniques - Training | Microsoft Learn
Solved! Go to Solution.
Hi @DCELL ,
Thanks for posting in Microsoft Fabric Community,
The issue where only the first row of numbers is showing up in the heatmap happens because Seaborn sometimes hides text when it automatically places the annotations. This can make some values disappear, especially when the background color is too dark or light.
To fix this, manually add the numbers using plt.text(). This makes sure that all values are placed clearly inside each cell, so nothing gets hidden or overwritten. It also gives better control over how the numbers look, making them easy to read no matter the background color.
Here is the updated code and output:
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
# Load the dataset
penguins = pd.read_csv('https://raw.githubusercontent.com/MicrosoftLearning/dp-data/main/penguins.csv')
# Calculate the correlation matrix
corr = penguins.corr()
# Create heatmap without annotations
ax = sns.heatmap(
corr,
cmap='coolwarm',
linewidths=0.5,
vmin=-1, vmax=1,
cbar_kws={"shrink": 0.8}
)
# Manually add text annotations for every cell
for i in range(corr.shape[0]):
for j in range(corr.shape[1]):
plt.text(
j + 0.5, # X position
i + 0.5, # Y position
f"{corr.iloc[i, j]:.2f}", # Text content
ha='center',
va='center',
color='black',
fontsize=10,
)
plt.show()
Hope this helps. Please reach out forfurther assistance.
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly and a kudos would be appreciated.
Regards,
Vinay.
Hi @DCELL ,
Thanks for posting in Microsoft Fabric Community,
The issue where only the first row of numbers is showing up in the heatmap happens because Seaborn sometimes hides text when it automatically places the annotations. This can make some values disappear, especially when the background color is too dark or light.
To fix this, manually add the numbers using plt.text(). This makes sure that all values are placed clearly inside each cell, so nothing gets hidden or overwritten. It also gives better control over how the numbers look, making them easy to read no matter the background color.
Here is the updated code and output:
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
# Load the dataset
penguins = pd.read_csv('https://raw.githubusercontent.com/MicrosoftLearning/dp-data/main/penguins.csv')
# Calculate the correlation matrix
corr = penguins.corr()
# Create heatmap without annotations
ax = sns.heatmap(
corr,
cmap='coolwarm',
linewidths=0.5,
vmin=-1, vmax=1,
cbar_kws={"shrink": 0.8}
)
# Manually add text annotations for every cell
for i in range(corr.shape[0]):
for j in range(corr.shape[1]):
plt.text(
j + 0.5, # X position
i + 0.5, # Y position
f"{corr.iloc[i, j]:.2f}", # Text content
ha='center',
va='center',
color='black',
fontsize=10,
)
plt.show()
Hope this helps. Please reach out forfurther assistance.
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly and a kudos would be appreciated.
Regards,
Vinay.