栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Matplotlib学习笔记

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Matplotlib学习笔记

1 作图(墨尔本1981年至1990年的每月温度情况)
import numpy as np
import pandas as pd
import datetime
import matplotlib.pyplot as plt
%config InlineBackend.figure_format = 'svg'
import warnings
warnings.filterwarnings("ignore")
plt.rcParams['font.sans-serif'] = ['SimHei']   #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False   #用来正常显示负号
#数据准备
df=pd.read_csv("D:/pylearn/data/layout_ex1.csv")
df['Time']= pd.to_datetime(df['Time']) 
df['Year'] = df['Time'].dt.year 
df['Month'] = df['Time'].dt.month 

#画布与绘图
fig=plt.figure(figsize=(16, 4))
fig.suptitle('墨尔本1981年至1990年温度曲线', size=10)
plt.subplot(2,5,1) 
plt.plot(df['Month'][0:12],df['Temperature'][0:12],linestyle='-',linewidth=1,marker='*',markersize='5')
plt.title('1981年')
plt.ylabel('气温')
plt.xlim((0, 13))
plt.ylim((4, 18))
x_ticks = np.arange(0, 13, 1)
plt.xticks(x_ticks)
ax = plt.gca()
ax.axes.xaxis.set_ticklabels([])

plt.subplot(2,5,2) 
plt.plot(df['Month'][12:12*2],df['Temperature'][12:12*2],linestyle='-',linewidth=1,marker='*',markersize='5')
plt.title('1982年')
plt.xlim((0, 13))
plt.ylim((4, 18))
x_ticks = np.arange(0, 13, 1)
plt.xticks(x_ticks)
ax = plt.gca()
ax.axes.xaxis.set_ticklabels([])

plt.subplot(2,5,3) 
plt.plot(df['Month'][12*2:12*3],df['Temperature'][12*2:12*3],linestyle='-',linewidth=1,marker='*',markersize='5')
plt.title('1983年')
plt.xlim((0, 13))
plt.ylim((4, 18))
x_ticks = np.arange(0, 13, 1)
plt.xticks(x_ticks)
ax = plt.gca()
ax.axes.xaxis.set_ticklabels([])

plt.subplot(2,5,4) 
plt.plot(df['Month'][12*3:12*4],df['Temperature'][12*3:12*4],linestyle='-',linewidth=1,marker='*',markersize='5')
plt.title('1984年')
plt.xlim((0, 13))
plt.ylim((4, 18))
x_ticks = np.arange(0, 13, 1)
plt.xticks(x_ticks)
ax = plt.gca()
ax.axes.xaxis.set_ticklabels([])

plt.subplot(2,5,5) 
plt.plot(df['Month'][12*4:12*5],df['Temperature'][12*4:12*5],linestyle='-',linewidth=1,marker='*',markersize='5')
plt.title('1985年')
plt.xlim((0, 13))
plt.ylim((4, 18))
x_ticks = np.arange(0, 13, 1)
plt.xticks(x_ticks)
ax = plt.gca()
ax.axes.xaxis.set_ticklabels([])
plt.subplot(2,5,6) 
plt.plot(df['Month'][12*5:12*6],df['Temperature'][12*5:12*6],linestyle='-',linewidth=1,marker='*',markersize='5')
plt.title('1986年')
plt.ylabel('气温')
plt.xlim((0, 13))
plt.ylim((4, 18))
x_ticks = np.arange(0, 13, 1)
plt.xticks(x_ticks)

plt.subplot(2,5,7) 
plt.plot(df['Month'][12*6:12*7],df['Temperature'][12*6:12*7],linestyle='-',linewidth=1,marker='*',markersize='5')
plt.title('1987年')
plt.xlim((0, 13))
plt.ylim((4, 18))
x_ticks = np.arange(0, 13, 1)
plt.xticks(x_ticks)

plt.subplot(2,5,8) 
plt.plot(df['Month'][12*7:12*8],df['Temperature'][12*7:12*8],linestyle='-',linewidth=1,marker='*',markersize='5')
plt.title('1988年')
plt.xlim((0, 13))
plt.ylim((4, 18))
x_ticks = np.arange(0, 13, 1)
plt.xticks(x_ticks)


plt.subplot(2,5,9) 
plt.plot(df['Month'][12*8:12*9],df['Temperature'][12*8:12*9],linestyle='-',linewidth=1,marker='*',markersize='5')
plt.title('1989年')
plt.xlim((0, 13))
plt.ylim((4, 18))
x_ticks = np.arange(0, 13, 1)
plt.xticks(x_ticks)

plt.subplot(2,5,10) 
plt.plot(df['Month'][12*9:12*10],df['Temperature'][12*9:12*10],linestyle='-',linewidth=1,marker='*',markersize='5')
plt.title('1990年')
plt.xlim((0, 13))
plt.ylim((4, 18))
x_ticks = np.arange(0, 13, 1)
plt.xticks(x_ticks)
plt.savefig('D:/pictures/p1.jpeg')
plt.show()

运行结果:

2 作图

用 np.random.randn(2, 150) 生成一组二维数据,使用两种非均匀子图的分割方法,做出该数据对应的散点图和边际分布图

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%config InlineBackend.figure_format = 'svg'
import warnings
warnings.filterwarnings("ignore")
plt.rcParams['font.sans-serif'] = ['SimHei']  
plt.rcParams['axes.unicode_minus'] = False  
#生成数据
df=np.random.randn(2, 150) 
#画图
fig = plt.figure(figsize=(8, 8))
spec = fig.add_gridspec(nrows=2, ncols=2, width_ratios=[2,0.5], height_ratios=[0.5,2])

ax = fig.add_subplot(spec[1, 0])
ax.grid(True)
ax.scatter(df[0], df[1])
plt.xlim((-2.9, 3.5))
plt.ylim((-3.5, 3.1))
ax.set_xlabel('my_data_x')
ax.set_ylabel('my_data_y')

ax = fig.add_subplot(spec[0, 0])
ns,edgeBin,patches = plt.hist(df[0],bins=[-2.5,-2.0,-1.5,-1.0,-0.5,0.0,0.5,1.0,1.5,2.0,2.5,3.0],rwidth=0.8)
plt.axis('off')

ax = fig.add_subplot(spec[1, 1])
a=pd.cut(df[1],[-2.5,-2.0,-1.5,-1.0,-0.5,0.0,0.5,1.0,1.5,2.0,2.5,3.0])
b=a.value_counts()
c={'section2':b.index,'frequency2':b.values}
e=pd.DataFrame(c)
plt.barh([-2.5,-2.0,-1.5,-1.0,-0.5,0.0,0.5,1.0,1.5,2.0,2.5],e['frequency2'])
plt.ylim((-3.5, 3.1))
plt.axis('off')
fig.tight_layout()

运行结果:


参考资料:
1.matplotlib.pyplot.barh
2.第三回:布局格式定方圆

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/983194.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号