0. 前期准备:

导入三个必备的库,推荐使用jupyter notebook或者spyder编程环境

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

1. 线形图

1) Series直接生成线形图

参数介绍:

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()

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

ts = ts.cumsum()

ts.plot(kind='line',

label = 'demo',

style = '--g.',

color = 'red',

alpha = 0.4,

use_index = True,

rot = 45,

#grid = True,

ylim = [-50,50],

yticks = list(range(-50,50,10)),

figsize = (8,4),

title = 'test',

legend = True)

–> 输出的结果为:(网格一些基础设置之前已经设置过了)

2)Dataframe直接生成图表

参数介绍:

subplots → 是否将各个列绘制到不同图表,默认False

colormap → 因为是默认按列进行绘图,所以有个colormap参数可以设置,具体的可取样式,可以参照上个博客的讲解方式

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

df = df.cumsum()

df.plot(kind='line',

style = '--.',

alpha = 0.4,

use_index = True,

rot = 45,

grid = True,

figsize = (8,4),

title = 'test',

legend = True,

subplots = False,

colormap = 'jet')

–> 输出的结果为:(可以试试subplots = True的情况)

2. 柱状图与堆叠图

1) plt.plot(kind='bar/barh')

ax参数 → 选择第几个子图,之前博客已经有介绍

随机生成数据:

plt.rcParams['figure.dpi'] = 200

fig,axes = plt.subplots(4,1,figsize = (10,10))

s = pd.Series(np.random.randint(0,10,16),index = list('abcdefghijklmnop'))

df = pd.DataFrame(np.random.rand(10,3), columns=['a','b','c'])

① 单系列柱状图:plt.plot(kind='bar/barh')

s.plot(kind='bar',color = 'k',grid = True,alpha = 0.5,ax = axes[0],edgecolor = 'k')

–> 输出的结果为:

② 多系列柱状图:直接使用DataFrame的多列数据

df.plot(kind='bar',ax = axes[1],grid = True,colormap='Reds_r',edgecolor = 'k')

–> 输出的结果为:

③ 多系列堆叠图:stacked 参数→ 堆叠

df.plot(kind='bar',ax = axes[2],grid = True,colormap='Blues_r',stacked=True,edgecolor = 'k')

–> 输出的结果为:

④ 横向柱状图:df.plot.barh()/df.plot(kind = 'barh')

df.plot.barh(ax = axes[3],grid = True,stacked=True,colormap = 'BuGn_r',edgecolor = 'k')

#df.plot(kind = 'barh',ax = axes[3],grid = True,stacked=True,colormap = 'BuGn_r',edgecolor = 'k')

–> 输出的结果为:

2) plt.bar()

x,y参数 → x,y值

width → 宽度比例

facecolor → 柱状图里填充的颜色

edgecolor → 是边框的颜色

left → 每个柱x轴左边界

bottom → 每个柱y轴下边界 , bottom扩展即可化为甘特图 Gantt Chart

align → 决定整个bar图分布,默认left表示默认从左边界开始绘制,center会将图绘制在中间位置

xerr/yerr → x/y方向error 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 = 1,facecolor = 'yellowgreen',edgecolor = 'white',yerr = y1*0.1)

plt.bar(x,y2,width = 1,facecolor = 'lightskyblue',edgecolor = 'white',yerr = y2*0.1)

for i,j in zip(x,y1):

plt.text(i+0.3,j-0.15,'%.2f' % j, color = 'white')

for i,j in zip(x,y2):

plt.text(i+0.3,j+0.05,'%.2f' % -j, color = 'white')

#批量加注解

plt.margins(0.005)

–> 输出的结果为:(注意注解的微调,plt.margins() 两边间距的调整)

★★★★★ 3) 外嵌图表plt.table()

plt.table(cellText=None, cellColours=None,cellLoc=‘right’, colWidths=None,rowLabels=None, rowColours=None, rowLoc=‘left’,

colLabels=None, colColours=None, colLoc=‘center’,loc=‘bottom’, bbox=None)

参数讲解:

cellText:表格文本

cellLoc:cell内文本对齐位置

rowLabels:行标签

colLabels:列标签

rowLoc:行标签对齐位置

loc:表格位置 → left,right,top,bottom

data = [[ 66386, 174296, 75131, 577908, 32015],

[ 58230, 381139, 78045, 99308, 160454],

[ 89135, 80552, 152558, 497981, 603535],

[ 78415, 81858, 150656, 193263, 69638],

[139361, 331509, 343164, 781380, 52269]]

columns = ('Freeze', 'Wind', 'Flood', 'Quake', 'Hail')

rows = ['%d year' % x for x in (100, 50, 20, 10, 5)]

df = pd.DataFrame(data,columns = ('Freeze', 'Wind', 'Flood', 'Quake', 'Hail'),

index = ['%d year' % x for x in (100, 50, 20, 10, 5)])

df.plot(kind='bar',grid = True,colormap='Blues_r',stacked=True,figsize=(8,3))

# 创建堆叠图

plt.table(cellText = data,

cellLoc='center',

cellColours = None,

rowLabels = rows,

rowColours = plt.cm.BuPu(np.linspace(0, 0.5,5))[::-1], # BuPu可替换成其他colormap

colLabels = columns,

colColours = plt.cm.Reds(np.linspace(0, 0.5,5))[::-1],

rowLoc='right',

loc='bottom')

–> 输出的结果为:(科研或者工程常用制图)

3. 面积图

plt.plot.area():

使用Series.plot.area()和DataFrame.plot.area()创建面积图

stacked:是否堆叠,默认情况下,区域图被堆叠

为了产生堆积面积图,每列必须是正值或全部负值!

当数据有NaN时候,自动填充0,所以图标签需要清洗掉缺失值

fig,axes = plt.subplots(2,1,figsize = (8,6))

df1 = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd'])

df1.plot.area(colormap = 'Greens_r',alpha = 0.5,ax = axes[0])

–> 输出的结果为:

stacked参数的使用

df2 = pd.DataFrame(np.random.randn(10, 4), columns=['a', 'b', 'c', 'd'])

df2.plot.area(stacked=False,colormap = 'Set2',alpha = 0.5,ax = axes[1])

–> 输出的结果为:

4. 填图

1) 对函数与坐标轴之间的区域进行填充,使用fill函数

2) 填充两个函数之间的区域,使用fill_between函数

fig,axes = plt.subplots(2,1,figsize = (8,6))

x = np.linspace(0, 1, 500)

y1 = np.sin(4 * np.pi * x) * np.exp(-5 * x)

y2 = -np.sin(4 * np.pi * x) * np.exp(-5 * x)

axes[0].fill(x, y1, 'r',alpha=0.5,label='y1')

axes[0].fill(x, y2, 'g',alpha=0.5,label='y2')

# 也可写成:plt.fill(x, y1, 'r',x, y2, 'g',alpha=0.5)

x = np.linspace(0, 5 * np.pi, 1000)

y1 = np.sin(x)

y2 = np.sin(2 * x)

axes[1].fill_between(x, y1, y2, color ='b',alpha=0.5,label='area')

for i in range(2):

axes[i].legend()

axes[i].grid()

–> 输出的结果为:

5. 饼图

plt.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=None,

radius=None, counterclock=True, wedgeprops=None, textprops=None, center=(0, 0), frame=False, hold=None, data=None)

参数讲解:

第一个参数x:数据

explode:指定每部分的偏移量

labels:标签

colors:颜色

autopct:饼图上的数据标签显示方式

pctdistance:每个饼切片的中心和通过autopct生成的文本开始之间的比例

labeldistance:被画饼标记的直径,默认值:1.1

shadow:阴影

startangle:开始角度

radius:半径

frame:图框

counterclock:指定指针方向,顺时针或者逆时针

s = pd.Series(3 * np.random.rand(4), index=['a', 'b', 'c', 'd'], name='series')

plt.axis('equal') # 保证长宽相等

plt.pie(s,

explode = [0.1,0,0,0],

labels = s.index,

colors=['r', 'g', 'b', 'c'],

autopct='%.2f%%',

pctdistance=0.6,

labeldistance = 1.2,

shadow = True,

startangle=0,

radius=1.5,

frame=False)

print(s)

–> 输出的结果为:

原文链接:https://blog.csdn.net/lys_828/article/details/105003503

python画饼图柱状图_荐【python数据分析(24)】Matplotlib库基本图形绘制(1)(线形图、柱状图、堆叠图、面积图、填图、饼图)...相关推荐

  1. 【python数据分析(24)】Matplotlib库基本图形绘制(1)(线形图、柱状图、堆叠图、面积图、填图、饼图)

    0. 前期准备: 导入三个必备的库,推荐使用jupyter notebook或者spyder编程环境 import numpy as npimport pandas as pdimport matpl ...

  2. python画交互式地图_使用Python构建交互式地图-入门指南

    python画交互式地图 Welcome to The Beginner's Guide to Building Interactive Maps in Python 欢迎使用Python构建交互式地 ...

  3. python画圆形螺旋线_【Python基础】利用 Python 搞定精美网络图!

    作者:叶庭云     编辑:Lemon      出品:Python数据之道 一.NetworkX 概述NetworkX 是一个用 Python 语言开发的图论与复杂网络建模工具,内置了常用的图与复杂 ...

  4. 用python画动态樱花_利用python画一棵漂亮的樱花树,turtle画图代码大全,此处感谢知乎大佬小白...

    利用python画一棵漂亮的樱花树,turtle画图代码大全,此处感谢知乎大佬小白 此处感谢知乎大佬 小白练手 练习一下比较流行的turtle(海龟库) 画一棵漂亮的樱花树,效果如下: ps: 是动态 ...

  5. python画猪头_使用Python画小猪佩奇 社会人标配

    看了一些用python实现小猪佩奇画画的帖子,向自己实现下,以此记录. 社会人的标配是谁,当然是吹风机小猪佩奇身上纹. 我自己尝试画过小猪配齐但是感觉眼睛特别难画,画出来的猪头没有立体感,眼睛画不好整 ...

  6. python画柱状图-Python画柱状统计图操作示例【基于matplotlib库】

    本文实例讲述了Python画柱状统计图操作.分享给大家供大家参考,具体如下: 一.工具:python的matplotlib.pyplot 库 二.案例: import matplotlib.pyplo ...

  7. python画地球代码_用Python制作中国地图、地球平面图及球形图

    绘制地图在python中主要用到的 basemap 库,这个库是 matplotlib 库中一个用于在 Python 中绘制地图上的 2D 数据的工具包. 安装库: 1.安装 geos 库:Pytho ...

  8. python画雪花流程图_用python画雪花,Python

    # 用Python画雪花 # 学习https://www.toutiao.com/i6787554710594257420/?tt_from=weixin&utm_campaign=clien ...

  9. 如何用python画金字塔形状_用Python画小猪佩奇,落叶树和动漫人物

    本文目录:小猪佩奇-落叶树-魔法少女 本文作者:小赖同学 ​ 最近在浏览Python文章时,无意中发现了一个好玩的画图工具turtle,看到各路大神竟然用Python画了一个图片出来,无法用言语来形容 ...

最新文章

  1. 06.正则表达式基本知识
  2. Android:Margin和Padding
  3. Android时间选择器对话框的使用
  4. 2022年中国政企采购数字化转型白皮书
  5. Dart的数据库操作
  6. [redis]redis概述
  7. java html类_java HTML
  8. 可用子网数要不要减2_子网数、主机数与子网掩码的关系
  9. 响应式个人简历网页源代码
  10. java nio为什么是非阻塞_Java nio都是非阻塞IO么?并非如此
  11. 关于浮点型误差的解决方法
  12. 洛谷 P4238 【模板】多项式求逆 ntt
  13. 【matplotlib】绘制简单二维、三维图像
  14. ManjaroLinux扩展显示器,连接显示器。
  15. 海信提前批电话面试题目
  16. 浅谈游戏《Dead Cells死亡细胞》
  17. C语言编程练习——循环结构(一)
  18. minigui:静态编译连接mgncs库时遇到的xml2的问题
  19. Python3安装turtle库
  20. 5g 2020年赚钱的企业_如何在2020年建立旅游博客(一边赚钱)

热门文章

  1. EurekaCAP原理
  2. node nvm 安装及使用
  3. 微信公众号开发 - 配置表设计以及接入公众号接口开发
  4. 混合整数分布式蚁群优化算法-MIDACO介绍和试用
  5. 莫纳什大学计算机专业排名,澳大利亚大学计算机专业排名
  6. Centos7 Python3.6+Qt5.12.9+ PyQt5.12+Sip v5+QScintilla-2.10+Eric6
  7. 互联网电影院带来新突破,5G+4K’
  8. 【SEED Lab】ARP Cache Poisoning Attack Lab
  9. LTspice基础教程-015.导入第三方库
  10. 新手必看:蓝牙耳机什么牌子的好用?2023年蓝牙耳机排名