查看原文
其他

Python数据分析之Matplotlib(2)

Ahab Ahab杂货铺 2019-02-25

击上方“Ahab杂货铺”,选择“置顶公众号”

技术分享第一时间送达!



写在前面

自己的状态已经调整过来了,今天恢复更新,之前的赠书活动仍然有效,在文末可以点击传送门,大家积极参与。今天介绍的是三剑客之一Matplotlib折线图的相关。

绘制折线图:

import matplotlib.pyplot as plt
x=range(2,26,2)
y=[15,13,14.5,17,20,25,16,26,27,22,18,15]
plt.plot(x,y)
plt.show()


这个折线图具体是什么意思自己可能看着都费劲更不用说其他人了,现在就需要对这个折线图进一步的细化,让这个图让更多人能够看明白。


图片大小:

fig = plt.figure(figsize=(5,5), dpi=80)

figsize可以调节图片的宽和高
dpi参数可以让图片更加清晰


保存图片:

plt.savefig("./sig_size.png")

savefig()可以保存刚刚图片到本地。


描述信息 x y轴表示什么:

import matplotlib.pyplot as plt
x = range(2, 26, 2)
y = [15, 13,14.5,17,20,25,26, 26, 27, 22, 18, 15]
plt.xlabel("时间",)
plt.ylabel("温度 单位(C)",)
plt.title("10点到11点每分钟温度变化情况")
plt.plot(x, y)
plt.show()

可以从图片中看到中文已经乱码,这里介绍四种方法解决Matplotlib中文乱码。


【方式一】FontProperties

import matplotlib.pyplot as plt
#步骤一
from matplotlib.font_manager \
import
FontProperties
# 步骤二
font = FontProperties(fname=
r"c:\windows\fonts\simsun.ttc", size=14)
# 步骤三
plt.xlabel("x轴", fontproperties=font)
plt.ylabel("y轴", fontproperties=font)
plt.title("标题", fontproperties=font)
plt.show()


【方式二】 fontproperties

import matplotlib.pyplot as plt
plt.xlabel("x轴")
plt.ylabel("y轴", fontproperties="SimSun")
plt.title("标题", fontproperties="SimHei")
plt.show()

优点:灵活,不污染全局字体设置


【方式三】rcParams

import matplotlib.pyplot as plt
# 步骤一(替换sans-serif字体)
plt.rcParams['font.sans-serif'] = ['SimHei']
# 步骤二(解决坐标轴负数的负号显示问题)
plt.rcParams['axes.unicode_minus'] = False
plt.xlabel("x轴")
plt.ylabel("y轴")
plt.title("标题")
plt.show()

优点:简洁的用法。缺点:污染全局字体设置。(所以需要第二步骤)


【方式四】rc


import matplotlib.pyplot as plt
font = {'family' : 'SimHei',
       'weight' : 'bold',
       'size'   : '16'}
# 步骤一(设置字体的更多属性)
plt.rc('font', **font)
# 步骤二(解决坐标轴负数的负号显示问题)
plt.rc('axes', unicode_minus=False)
plt.xlabel("x轴")
plt.ylabel("y轴")
plt.title("标题")
plt.show()

优点:灵活的用法。缺点:影响全局字体(所以需要第二步骤)


【总结】
方式二用时才设置,且不会污染全局字体设置,更灵活
方式三、方式四不需要对字体路径硬编码,而且一次设置,多次使用,更方便)


设置x y 轴的刻度间距:

plt.xticks(range(2,25))
plt.yticks(range(min(y),max(y)+1))

参数根据自己的需求去设置


绘制网格线:

plt.grid(alpha=0.4)

alpha 参数可以设置网格的透明度


今天的介绍就到这,没怎么排版,看起来可能有点累大家多多谅解。福利传送门就在下方。


福利传送门:

勿忘初心


近期推荐阅读:

程序猿资料大汇总

LeetCode】打卡记录(NO.1-10)


进群交流可以加我微信,备注进群



欢迎您的点赞和分享

▲长按关注此公众号




    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存