Join us for an expert-led overview of the tools and concepts you'll need to pass exam PL-300. The first session starts on June 11th. See you there!
Get registeredJoin us at FabCon Vienna from September 15-18, 2025, for the ultimate Fabric, Power BI, SQL, and AI community-led learning event. Save €200 with code FABCOMM. Get registered
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.