前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python数据分析之Matplotlib(2)

Python数据分析之Matplotlib(2)

作者头像
PM小王
发布2019-07-02 15:50:49
7090
发布2019-07-02 15:50:49
举报

写在前面

自己的状态已经调整过来了,今天恢复更新,之前的赠书活动仍然有效,在文末可以点击传送门,大家积极参与。今天介绍的是三剑客之一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 参数可以设置网格的透明度

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-10-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员小王 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档