python中输入数据生成柱形图、然后之间比例生成折线图_Python数据分析 4:图表绘制工具Matplotlib...

本文详细介绍了Python数据分析库Matplotlib的使用,包括图表窗口的生成、魔法函数的应用、图表的可交互性、图表的基本元素、样式参数、刻度与注解、图表输出、子图创建及各种图表的绘制,如柱形图、折线图、散点图、极坐标图和箱型图。内容覆盖了从基本操作到高级特性的全面解析。
摘要由CSDN通过智能技术生成

一、Matplotlib简介及图表窗口

Matplotlib是一个python版的matlab绘图接口,以2D为主,支持python、numpy、pandas基本数据结构,其特点为运营高效且具有丰富的图表库。

1、利用plt.show()来生成图表

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

# 图表窗口1 → plt.show()

plt.plot(np.random.rand(10))

plt.show()

# 直接生成图表

2、魔法函数

# 图表窗口2 → 魔法函数,嵌入图表

% matplotlib inline

x=np.random.randn(1000)

y=np.random.rand(1000)

plt.scatter(x,y)

# plt.show()

# 直接嵌入图表,不用plt.show()

# 代表该图表对象

使用了matplotlib inline之后就不需要再输入plt.show()了

3、可交互窗口

# 图表窗口3 → 魔法函数,弹出可交互的matplotlib窗口

%matplotlib notebook

s=pd.Series(np.random.rand(100))

s.plot(style='k--o',figsize=(10,5))

# 可交互的matplotlib窗口,不用plt。show()

# 可以做一定的调整左右箭头的意思是可以切换左右的窗口,十字箭头的功能是移动视图,方形按钮是用来放大某一块图片区域的,最后一个功能是保存图片

4、可交互性控制台

# 图表窗口4 → 魔法函数,弹出matplotlib控制台

%matplotlib qt5

df=pd.DataFrame(np.random.rand(50,2),columns=['A','B'])

df.hist(figsize=(12,5),color='g',alpha=0.8)

# 可交互性控制台

# 如果已经设置了显示方式(比如notebook),需要重启然后运行魔法函数

# 网页嵌入的交互性窗口 和 控制台,只能显示一个

# plt.close()

# 每次清空图标内内容

二、图表的基本元素

1、图名,图例,轴标签,轴边界,轴刻度,轴刻度标签等

df=pd.DataFrame(np.random.rand(10,2),columns=['A','B'])

f=plt.figure(figsize=(10,10))

fig=df.plot(figsize=(6,4))

# figsize:创建图表窗口,设置窗口大小

# 创建图标对象,并赋值给fig

print(fig,type(fig))

print(f,type(f))

# title 表名

plt.title('xupeng')

# x轴y轴标签

plt.xlabel('x1')

plt.ylabel('y1')

# 图例的显示方式以及显示位置

plt.legend(loc='upper right')

# 'best':0,(only implemented for axes legends)(自适应方式)

# 'upper right':1

# 'upper left': 2

# 'lower left': 3

# 'lower right': 4

# 'right': 5

# 'center right': 6

# 'lower center': 8

# 'upper center': 9

# 'center': 10

plt.xlim([0,12]) # x轴边界

plt.ylim([0,1.5]) # y轴边界

plt.xticks(range(10)) # 设置x刻度

plt.yticks([0,0.2,0.4,0.6,0.8,1.0,1.2]) # 设置y刻度

fig.set_xticklabels("%.1f"%i for i in range(10)) # x轴刻度标签

fig.set_yticklabels("%.2f"%i for i in [0,0.2,0.4,0.6,0.8,1.0,1.2]) # y轴刻度标签

# 范围只限定图表的长度,刻度则是决定显示的标尺 → 这里x轴的范围是0~12,但刻度只有0~9,刻度标签使得其显示一位小数

# 轴标签则是显示刻度的标签

2、其他元素可视性

x=np.linspace(-np.pi,np.pi,256,endpoint=True)

c,s=np.cos(x),np.sin(x)

plt.plot(x,c)

plt.plot(x,s)

# 通过ndarry创建图表

# 创建格网

# plt.grid()

plt.grid(True,linestyle='--',color='gray',linewidth='0.5',axis='x')

# 显示网格

# linestyle: 线型

# color: 颜色

# linewidth: 宽度

# axis:x,y,both,显示x/y两者的格网

plt.tick_params(bottom='on',top='off',left='on',right='off')

# 刻度显示

import matplotlib

matplotlib.rcParams['xtick.direction']='in'

matplotlib.rcParams['ytick.direction']='inout'

# 设置刻度的方向,in,out,inout,即刻度是在图里面,外面还是中间

# 这里需要导入matplotlib,而不是仅仅导入matplotlib.pyplot

# frame=plt.gca()

# plt.axis('off')

# 关闭坐标这

# frame.axes.get_xaxis().set_visible(False)

# frame.axes.get_yaxis().set_visible(False)

# x/y不可见

三、图表的样式参数

1、linestyle参数

# linestyle参数

plt.plot([i**2 for i in range(100)],

linestyle='-.')

# '-' solid line style

# '--' dashed line style

# '-.' dash-dot line style

# ':' dotted line style

2、marker参数

# marker 参数

s= pd.Series(np.random.randn(100).cumsum()) # cumsum() 累计求和

s.plot(linestyle='--',

marker='.')

# '.' point marker

# ',' pixel marker

# 'o' circle marker

# 'v' triangle_down marker

# '^' triangle_up marker

# '

# '>' triangle_right marker

# '1' tri_down marker

# '2' tri_up marker

# '3' tri_left marker

# '4' tri_right marker

# 's' square marker

# 'p' pentagon marker

# '*' star marker

# 'h' hexagonl marker

# 'H' hexagon2 marker

# '+' plus marker

# 'x' x marker

# 'D' diamond marker

# 'd' thin_diamond marker

# '/' vline marker

# '_' hline marker

3、color参数

# color 参数

plt.hist(np.random.randn(100),

color='g',alpha=0.8)

# alpha:0-1,透明度

# 常用颜色简写:red-r,green-g,black-b,yellow-y

df=pd.DataFrame(np.random.randn(1000,4),columns=list('ABCD'))

df=df.cumsum()

df.plot(style='--.',alpha=0.8,colormap='GnBu')

# colormap:颜色板,包括很多选项

# 颜色参数自行查找

4、style参数

# style 参数,可以包含linestyle,marker,color

ts=pd.Series(np.random.randn(1000).cumsum(),index=pd.date_range('1/1/2000',periods=1000))

ts.plot(style='--g.',grid=True)

# style → 风格字符串,这里包含了linestyle(-),marker(.),color(g)

# plot()内也有grid参数

5、整体风格样式

# 整体风格样式

import matplotlib.style as psl

print(plt.style.available)

# 查看样式列表

psl.use('ggplot')

ts = pd.Series(np.random.randn(1000).cumsum(),index=pd.date_range('1/1/2000',periods=1000))

ts.plot(style='--g.',grid=True,figsize=(10,6))

# 一旦选用样式后,所有图表都会有样式,重启后才能关掉

四、刻度,注解,图表输出

1、刻度

from matplotlib.ticker import MultipleLocator, FormatStrFormatter

t=np.arange(0.0,100.0,1)

s=np.sin(0.1*np.pi*t)*np.exp(-t*0.01)

ax=plt.subplot(111) # 注意:一般都在ax种设置,不在plot中设置

plt.plot(t,s,'--*')

plt.grid(True,linestyle='--',color='

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值