Python作图之一

Posted SANGF

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python作图之一相关的知识,希望对你有一定的参考价值。

介绍

本文主要记录笔者在使用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\')

将图形保存到文本当中。

参考

以上是关于Python作图之一的主要内容,如果未能解决你的问题,请参考以下文章

Python作图程序

《Python机器学习及实践》----无监督学习之数据聚类

《Python机器学习及实践》----无监督学习之数据聚类

30 段 Python 实用代码

不用写一行Python代码,就可以用Matplotlib绘图,妈妈再也不担心我不会作图了!

不用写一行Python代码,就可以用Matplotlib绘图,妈妈再也不担心我不会作图了!