Auto adjust font size in seaborn heatmap

前端 未结 4 2083
一向
一向 2020-12-07 00:40

when using seaborn heatmap, is there a way to auto-adjust the font size for it to fit exactly inside the squares? for example in:

sns.heatmap(corrmat, vmin=         


        
相关标签:
4条回答
  • 2020-12-07 00:45

    If you want something automatic this is not bad:

    annot_kws={"size": 35 / np.sqrt(len(corrmat))},
    
    0 讨论(0)
  • 2020-12-07 01:00

    You can also do:

    sns.heatmap(corrmat, vmin=corrmat.values.min(), vmax=1, square=True, cmap="YlGnBu", linewidths=0.1, annot=True, annot_kws={"fontsize":8})  
    
    0 讨论(0)
  • 2020-12-07 01:00

    To adjust the font size of seaborn heatmap, there are different methods

    import seaborn as sns # for data visualization
    flight = sns.load_dataset('flights') # load flights datset from GitHub seaborn repository
    
    # reshape flights dataeset in proper format to create seaborn heatmap
    flights_df = flight.pivot('month', 'year', 'passengers') 
    
    sns.heatmap(flights_df) # create seaborn heatmap
    
    sns.set(font_scale=2) # font size 2
    

    Output >>>

    the sns.set(font_scale=2) # font size 2 set size for all seaborn graph labels that's reason follow another method if you like

    import seaborn as sns # for data visualization
    import matplotlib.pyplot as plt # for data visualization
    
    flight = sns.load_dataset('flights') # load flights datset from GitHub seaborn repository
    
    # reshape flights dataeset in proper format to create seaborn heatmap
    flights_df = flight.pivot('month', 'year', 'passengers') 
    
    sns.heatmap(flights_df) # create seaborn heatmap
    
    
    plt.title('Heatmap of Flighr Dataset', fontsize = 20) # title with fontsize 20
    plt.xlabel('Years', fontsize = 15) # x-axis label with fontsize 15
    plt.ylabel('Monthes', fontsize = 15) # y-axis label with fontsize 15
    
    plt.show()
    

    Output >>>

    0 讨论(0)
  • 2020-12-07 01:07

    Although it distorts the heatmap, this example illustrates how to scale the font using .set(...) context

    import matplotlib.pyplot as plt
    import seaborn as sns
    sns.set(font_scale=3)
    
    # Load the example flights dataset and conver to long-form
    flights_long = sns.load_dataset("flights")
    flights = flights_long.pivot("month", "year", "passengers")
    
    # Draw a heatmap with the numeric values in each cell
    f, ax = plt.subplots(figsize=(9, 6))
    sns.heatmap(flights, annot=True, fmt="d", linewidths=.5, ax=ax)
    f.savefig("output.png")
    
    0 讨论(0)
提交回复
热议问题