Python作图之一

2021-04-19 03:26

阅读:477

标签:exce   http   cat   数值范围   说明   save   pad   lse   otto   

介绍

本文主要记录笔者在使用Python制作条形图中的一些脚本。

代码

# 导入数据
import pandas as pd

df = pd.read_excel(‘demo.xlsx‘, header=0, sheet_name=‘Sheet1‘)
df.head()

技术图片

# 导入相关包
import matplotlib.pyplot as plt
import seaborn as sns

from pylab import mpl
mpl.rcParams[‘font.size‘] = 12
mpl.rcParams[‘axes.unicode_minus‘]=False
mpl.rcParams[‘font.family‘] = [‘calibri‘]

ax = sns.barplot(
    x="Group", 
    y="Value", 
    hue="Category", 
    data=df,
    orient="v"
)

ax.axhline(0, color="k", lw=1, clip_on=False)

ax.spines[‘top‘].set_visible(False)
ax.spines[‘right‘].set_visible(False)
ax.spines[‘bottom‘].set_visible(False)
# ax.spines[‘left‘].set_visible(False)

ax.tick_params(axis=u‘x‘, which=u‘both‘,length=0)

ax.set_xlabel("")
ax.set_ylabel("Value")

ax.set_ylim(0, 0.35)

plt.legend(bbox_to_anchor=(1.05, 0), loc=3, borderaxespad=0)

plt.savefig(‘20200713_demo.pdf‘, bbox_inches=‘tight‘)

技术图片

说明

from pylab import mpl
mpl.rcParams[‘font.size‘] = 12
mpl.rcParams[‘axes.unicode_minus‘]=False
mpl.rcParams[‘font.family‘] = [‘calibri‘]

设置图形的字体、字号以及解决在特定字体下负号的显示问题。

ax = sns.barplot(
    x="Group", 
    y="Value", 
    hue="Category", 
    data=df,
    orient="v"
)

条形图主体代码,这里只用到了几个基本的参数。关于barplot()函数的其他参数参考seaborn1和Matplotlib2官方文档。

ax.axhline(0, color="k", lw=1, clip_on=False)

添加直线y=0。对于y轴数据正负数同时存在的情况,在y=0的地方添加水平线可以让图形显得不那么突兀。

ax.spines[‘top‘].set_visible(False)
ax.spines[‘right‘].set_visible(False)
ax.spines[‘bottom‘].set_visible(False)
# ax.spines[‘left‘].set_visible(False)

删除图形四周的边框。

ax.tick_params(axis=u‘x‘, which=u‘both‘,length=0)

去掉x轴的标尺,也就是原来x轴上的小竖线。

ax.set_xlabel("")
ax.set_ylabel("Value")

设置x轴和y轴的标签。如果这里不进行设置,将会默认显示barplot的x和y参数对应的变量名称。因此,如果不想显示原始的变量名称,就可以在这里进行设置。

ax.set_ylim(0, 0.35)

设置y轴的数值范围。

plt.legend(bbox_to_anchor=(1.05, 0), loc=3, borderaxespad=0)

设置图例的位置。如果这里不进行设置,barplot函数默认会在图形内部显示图例。在数据比较多的情况下,图例和柱子就会有重叠。因此将图例放置在图形外部是比较好的一种方法。

plt.savefig(‘20200713_demo.pdf‘, bbox_inches=‘tight‘)

将图形保存到文本当中。

参考

  • [1] seaborn官方文档
  • [2] Matplotlib官方文档

Python作图之一

标签:exce   http   cat   数值范围   说明   save   pad   lse   otto   

原文地址:https://www.cnblogs.com/sangf/p/13292007.html


评论


亲,登录后才可以留言!