Python数据可视化matplotlib(三)——绘制基本的图表

Python数据可视化matplotlib(三)——绘制基本的图表

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
% matplotlib inline
import matplotlib.style as psl
psl.use('_classic_test')

基本图表绘制 plt.plot()

图表类别:线形图、柱状图、密度图,以横纵坐标两个维度为主
同时可延展出多种其他图表样式

plt.plot(kind=‘line’, ax=None, figsize=None, use_index=True, title=None, grid=None, legend=False,
style=None, logx=False, logy=False, loglog=False, xticks=None, yticks=None, xlim=None, ylim=None,
rot=None, fontsize=None, colormap=None, table=False, yerr=None, xerr=None, label=None, secondary_y=False, **kwds)

线性表

Series直接生成图表

ts = pd.Series(np.random.randn(1000),index=pd.date_range('1/1/2010',periods=1000))
ts = ts.cumsum()
ts.plot(kind='line',  #图表类型
        color='r',
        style='-gx',
        alpha=0.5,
        use_index=True,  #是否使用数据中给出的index
        rot=0,    # 旋转刻度标签
        ylim=[-50, 50],
        yticks=list(range(-50, 50,10)),
        title='time series',
        legend=True,
        label='cad')
plt.grid(True, linestyle = "--",color = "gray", linewidth = "0.5",axis = 'both')  # 网格
# Series.plot():series的index为横坐标,value为纵坐标
# kind → line,bar,barh...(折线图,柱状图,柱状图-横...)
# label → 图例标签,Dataframe格式以列名为label
# style → 风格字符串,这里包括了linestyle(-),marker(.),color(g)
# color → 颜色,有color指定时候,以color颜色为准
# alpha → 透明度,0-1
# use_index → 将索引用为刻度标签,默认为True
# rot → 旋转刻度标签,0-360
# grid → 显示网格,一般直接用plt.grid
# xlim,ylim → x,y轴界限
# xticks,yticks → x,y轴刻度值
# figsize → 图像大小
# title → 图名
# legend → 是否显示图例,一般直接用plt.legend()
# 也可以 → plt.plot()

这里写图片描述

Dataframe直接生成图表

df = pd.DataFrame(np.random.randn(1000, 4), index = ts.index, columns=list('abcd'))
df = df.cumsum()
df.plot(style='--.',
        alpha=0.8,
        ylim=[-100,100],
        figsize=(10,8),
        grid=True,
        yticks=list(range(-100, 125,25)),
        title='text',
        subplots=True,   #是否将每个系列分成不同的子图
        )
plt.grid(True, linestyle='--', axis='both')

# subplots → 是否将各个列绘制到不同图表,默认False
# 也可以 → plt.plot(df)

png

柱状图与堆叠图

直接生成图


# 柱状图与堆叠图
# plt.xkcd()  #漫画风格
fig,axes=plt.subplots(4, 1, figsize=(12,12))
s = pd.Series(np.random.randint(0,10,16), index=list('abcdfeghjklmnopq'))
df = pd.DataFrame(np.random.rand(10, 3), columns=['a', 'b','c'])

#单系列柱状图
s.plot(kind='bar',ax=axes[0],grid=True,legend=True,label='s', alpha=0.6)

#多系列柱状图
df.plot(kind='bar', ax=axes[1],colormap='Reds_r')

#多系列堆叠图
df.plot(kind='bar',ax=axes[2],colormap='Blues_r', stacked=True)
# stacked → 堆叠

df.plot.barh(ax = axes[3],grid = True,stacked=True,colormap = 'BuGn_r')
# 新版本plt.plot.<kind>

png

柱状图 plt.bar()

plt.figure(figsize=(10,4))
x = np.arange(10)
y1 = np.random.rand(10)
y2 = np.random.rand(10)

plt.bar(x, y1, width = 0.8, facecolor = 'green', edgecolor= 'black', yerr = y1*0.1)
plt.bar(x, -y2, width = 0.8, facecolor = 'yellow', edgecolor= 'black', yerr = y2*0.1)


# x,y参数:x,y值
# width:宽度比例
# facecolor柱状图里填充的颜色、edgecolor是边框的颜色
# left-每个柱x轴左边界,bottom-每个柱y轴下边界 → bottom扩展即可化为甘特图 Gantt Chart
# align:决定整个bar图分布,默认left表示默认从左边界开始绘制,center会将图绘制在中间位置
# xerr/yerr :x/y方向error bar 误差值

for i, j in zip(x, y1):
    plt.text(i-0.2, j+0.1, '%.2f'%j, color='blue')
for i, j in zip(x, y2):
    plt.text(i, -j-0.2, '%.2f'%j
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值