DataFrame.plot函数详解(一)

news2024/10/6 16:16:24

DataFrame.plot函数详解(一)

1.函数定义

使用pandas.DataFrame的plot方法绘制图像会按照数据的每一列绘制一条曲线,默认按照列columns的名称在适当的位置展示图例 。

DataFrame.plot(x=None, y=None, kind='line', ax=None, subplots=False, 
                sharex=None, sharey=False, layout=None, figsize=None, 
                use_index=True, title=None, grid=None, legend=True, 
                style=None, logx=False, logy=False, loglog=False, 
                xticks=None, yticks=None, xlim=None, ylim=None, rot=None, 
                fontsize=None, colormap=None, position=0.5, table=False, yerr=None, 
                xerr=None, stacked=True/False, sort_columns=False, 
                secondary_y=False, mark_right=True, **kwds)

1.1.参数说明

x和y:表示标签或者位置,用来指定显示的索引,默认为None 
kind:表示绘图的类型,默认为line,折线图 
   line:折线图
   bar/barh:柱状图(条形图),纵向/横向 
   pie:饼状图 hist:直方图(数值频率分布) box:箱型图
   kde:密度图,主要对柱状图添加Kernel 概率密度线 
   area:区域图(面积图) 
   scatter:散点图 hexbin:蜂巢图
ax:子图,可以理解成第二坐标轴,默认None 
subplots:是否对列分别作子图,默认False
sharex:共享x轴刻度、标签。如果ax为None,则默认为True,如果传入ax,则默认为False 
sharey:共享y轴刻度、标签
layout:子图的行列布局,(rows, columns) 
figsize:图形尺寸大小,(width, height)
use_index:用索引做x轴,默认True title:图形的标题 
grid:图形是否有网格,默认None legend:子图的图例
style:对每列折线图设置线的类型,list or dict 
logx:设置x轴刻度是否取对数,默认False 
logy:设置y轴刻度是否取对数,默认False 
loglog:同时设置x,y轴刻度是否取对数,默认False 
xticks:设置x轴刻度值,序列形式(比如列表) 
yticks:设置y轴刻度值,序列形式(比如列表) 
xlim:设置x坐标轴的范围。数值,列表或元组(区间范围) 
ylim:设置y坐标轴的范围。数值,列表或元组(区间范围)  
rot:轴标签(轴刻度)的显示旋转度数,默认None 
fontsize: int, default None#设置轴刻度的字体大小 
colormap:设置图的区域颜色 
colorbar:柱子颜色
position:柱形图的对齐方式,取值范围[0,1],默认0.5(中间对齐)
table:图下添加表,默认False。若为True,则使用DataFrame中的数据绘制表格 
yerr:y误差线 
xerr:x误差线 
stacked:是否堆积,在折线图和柱状图中默认为False,在区域图中默认为True
sort_columns:对列名称进行排序,默认为False secondary_y:设置第二个y轴(右辅助y轴),默认为False
mark_right : 当使用secondary_y轴时,在图例中自动用“(right)”标记列标签 ,默认True
x_compat:适配x轴刻度显示,默认为False。设置True可优化时间刻度的显示

1.2.其他参数

color:颜色
s:散点图大小,int类型
#设置x,y轴名称
ax.set_ylabel('X')
ax.set_xlabel('Y')

1.3. 主要参数值

DataFrame的linestyle和marker参数,与matplotlib.pyplot的linestyle参数一样。

1.3.1. style

import numpy as np
import matplotlib.pyplot as plt

linestyle_str = [
     ('solid', 'solid'),      # Same as (0, ()) or '-'
     ('dotted', 'dotted'),    # Same as (0, (1, 1)) or ':'
     ('dashed', 'dashed'),    # Same as '--'
     ('dashdot', 'dashdot')]  # Same as '-.'

linestyle_tuple = [
     ('loosely dotted',        (0, (1, 10))),
     ('dotted',                (0, (1, 1))),
     ('densely dotted',        (0, (1, 1))),
     ('long dash with offset', (5, (10, 3))),
     ('loosely dashed',        (0, (5, 10))),
     ('dashed',                (0, (5, 5))),
     ('densely dashed',        (0, (5, 1))),
     ('loosely dashdotted',    (0, (3, 10, 1, 10))),
     ('dashdotted',            (0, (3, 5, 1, 5))),
     ('densely dashdotted',    (0, (3, 1, 1, 1))),
     ('dashdotdotted',         (0, (3, 5, 1, 5, 1, 5))),
     ('loosely dashdotdotted', (0, (3, 10, 1, 10, 1, 10))),
     ('densely dashdotdotted', (0, (3, 1, 1, 1, 1, 1)))]


def plot_linestyles(ax, linestyles, title):
    X, Y = np.linspace(0, 100, 10), np.zeros(10)
    yticklabels = []

    for i, (name, linestyle) in enumerate(linestyles):
        ax.plot(X, Y+i, linestyle=linestyle, linewidth=1.5, color='black')
        yticklabels.append(name)

    ax.set_title(title)
    ax.set(ylim=(-0.5, len(linestyles)-0.5),
           yticks=np.arange(len(linestyles)),
           yticklabels=yticklabels)
    ax.tick_params(left=False, bottom=False, labelbottom=False)
    ax.spines[:].set_visible(False)

    # For each line style, add a text annotation with a small offset from
    # the reference point (0 in Axes coords, y tick value in Data coords).
    for i, (name, linestyle) in enumerate(linestyles):
        ax.annotate(repr(linestyle),
                    xy=(0.0, i), xycoords=ax.get_yaxis_transform(),
                    xytext=(-6, -12), textcoords='offset points',
                    color="blue", fontsize=8, ha="right", family="monospace")


fig, (ax0, ax1) = plt.subplots(2, 1, figsize=(10, 8), height_ratios=[1, 3])

plot_linestyles(ax0, linestyle_str[::-1], title='Named linestyles')
plot_linestyles(ax1, linestyle_tuple[::-1], title='Parametrized linestyles')

plt.tight_layout()
plt.show()

在这里插入图片描述

1.3.2. marker

from matplotlib.markers import MarkerStyle
import matplotlib.pyplot as plt
from matplotlib.lines import Line2D
from matplotlib.transforms import Affine2D


text_style = dict(horizontalalignment='right', verticalalignment='center',
                  fontsize=12, fontfamily='monospace')
marker_style = dict(linestyle=':', color='0.8', markersize=10,
                    markerfacecolor="tab:blue", markeredgecolor="tab:blue")


def format_axes(ax):
    ax.margins(0.2)
    ax.set_axis_off()
    ax.invert_yaxis()


def split_list(a_list):
    i_half = len(a_list) // 2
    return a_list[:i_half], a_list[i_half:]

fig, axs = plt.subplots(ncols=2)
fig.suptitle('Filled markers', fontsize=14)
for ax, markers in zip(axs, split_list(Line2D.filled_markers)):
    for y, marker in enumerate(markers):
        ax.text(-0.5, y, repr(marker), **text_style)
        ax.plot([y] * 3, marker=marker, **marker_style)
    format_axes(ax)

在这里插入图片描述

fig, axs = plt.subplots(ncols=2)
fig.suptitle('Un-filled markers', fontsize=14)

# Filter out filled markers and marker settings that do nothing.
unfilled_markers = [m for m, func in Line2D.markers.items()
                    if func != 'nothing' and m not in Line2D.filled_markers]

for ax, markers in zip(axs, split_list(unfilled_markers)):
    for y, marker in enumerate(markers):
        ax.text(-0.5, y, repr(marker), **text_style)
        ax.plot([y] * 3, marker=marker, **marker_style)
    format_axes(ax)

在这里插入图片描述

1.3.3 color

matplotlib定义的颜色

import matplotlib
matplotlib.colors.BASE_COLORS
matplotlib.colors.TABLEAU_COLORS
matplotlib.colors.CSS4_COLORS
matplotlib.colors.XKCD_COLORS

颜色展示如下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/916409.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是XGBoost

什么是XGBoost XGBoost是GBDT的优秀版本。XGBoost的整体结构和GBDT一致,都是在训练出一棵树的基础上,再训练下一棵树,预测它与真实分布间的差距,通过不断训练用来弥补差距的树,最终用树的组合实现对真实分布的模拟。 …

怎么把AVI视频转GIF动图?教你几种简单好用方法

将视频转成GIF动图有很多好处。首先,GIF动图可以自动循环播放,这使得它们更易于分享和观看。相比于视频,GIF动图的体积更小,加载速度更快,更利于在社交媒体等平台上分享。此外,GIF动图还可以作为一种有趣的…

【地理图库】世界小麦产量分布

声明:来源网络,仅供学习!

Git企业开发控制理论和实操-从入门到深入(二)|Git的基本操作

前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助。 高质量博客汇总https://blog.csdn.net/yu_cblog/cate…

气传导蓝牙耳机哪款好?推荐几款很不错的气传导耳机

​气传导耳机在音质、舒适度和耐久性方面的表现相当出色,能够满足你的各种需求。然而面对市面上这么多气传导耳机,不知道该如何挑选时,也不用过于担心,我先来安利几款很不错的气传导耳机给大家来参考参考,看看有没有心…

Redis过期数据的删除策略

1 介绍 Redis 是一个kv型数据库,我们所有的数据都是存放在内存中的,但是内存是有大小限制的,不可能无限制的增量。 想要把不需要的数据清理掉,一种办法是直接删除,这个咱们前面章节有详细说过;另外一种就是…

冠达管理:水产、食品检测概念股强势拉升 日本将启动福岛核污染水排海

受日本将发动福岛核污染水排海事情刺激,水产股23日盘中大幅拉升,截至发稿,大湖股份涨停,国联水产涨超6%,獐子岛、百洋股份涨超3%。 核污染防治概念亦走强,截至发稿,中电环保涨超11%,…

删除链表的中间节点

题目: 示例: 思路: 这个题类似于寻找链表中间的数字,slow和fast都指向head,slow走一步,fast走两步,也许你会有疑问,节点数的奇偶不考虑吗?while执行条件写成fast&&…

重磅GPT-3.5 Turbo开放微调功能,专属GPT来了

8月22日,OpenAI官网发布最新公告:GPT-3.5 Turbo 的微调现已推出,GPT-4 的微调将于今年秋天推出。 此更新使开发人员能够自定义更适合其自身的模型,并大规模运行这些自定义模型。早期测试表明,GPT-3.5 Turbo 的微调版本…

flask获取请求对象的get和post参数

前言 get请求参数是在URL里面的,post请求参数是放在请求头里面的 get请求: index_page.route("/get") def get():var_a request.args.get("a", "jarvis")return "request:%s,params:%s,var_a:%s" %(request…

生态经济学领域里的R语言机器学(数据的收集与清洗、综合建模评价、数据的分析与可视化、数据的空间效应、因果推断等)

近年来,人工智能领域已经取得突破性进展,对经济社会各个领域都产生了重大影响,结合了统计学、数据科学和计算机科学的机器学习是人工智能的主流方向之一,目前也在飞快的融入计量经济学研究。表面上机器学习通常使用大数据&#xf…

前端界面设计

目录 1.设计一个兴趣展示网站1.效果2.代码展示 2.设计一个优美的登录网页1.效果2.代码展示 3. 自己写过的一些前端界面设计Demo整理。 1.设计一个兴趣展示网站 1.效果 2.代码展示 工程截图&#xff1a; index.html代码&#xff1a; <!DOCTYPE html> <html lang"…

基于MATLAB开发AUTOSAR软件应用层Code mapping专题-part 6 Data Transfers标签页介绍

这篇文章我们介绍下Data Transfers页的配置,这里边包含的内容是IRV,我之前的文章里有讲解过IRV就是 Inter-Runnable Variables,内部runnable的之间传递数据的变量,在讲解Data Store memory的文章里我们提到了,irv也可以使用Data Store memory的方式来实现,我们先看下IRV如何…

OceanBase:谁动了我得参数?

作者&#xff1a;郑增权 爱可生南区数据库工程师&#xff0c;爱可生 DBA 团队成员&#xff0c;负责数据库相关技术支持。爱好&#xff1a;桌球、羽毛球、咖啡、电影。 本文来源&#xff1a;原创投稿 爱可生开源社区出品&#xff0c;原创内容未经授权不得随意使用&#xff0c;转…

UE4/5Niagara粒子特效之Niagara_Particles官方案例:3.3->4.3

目录 3.3 Visibility Tag 左边的发射器&#xff1a; 发射器更新 粒子生成 粒子更新 右边的发射器 和左边发射器不同的地方 3.4 Texture Sampling 发射器更新 粒子生成 粒子更新 4.1Play Audio Per Particle 系统 第三个发射器 发射器更新 粒子生成 粒子更新 第二个…

C++ 好用的格式化库--fmt

背景 fmt 库是一个开源的 C 格式化库&#xff0c;它提供了一种简洁、安全和高效的方式来进行字符串格式化。该库的设计目标是提供与 Python 的字符串格式化语法类似的功能&#xff0c;同时保持 C 的类型安全性和性能。 下载与安装 官网下载 fmt 官网地址&#xff1a;https:…

OpenEuler 卸载mysql

查询系统是否安装了MySQL rpm -qa | grep -i mysql 关闭mysql 查看MySQL服务运行状态 ps -ef | grep mysql 或者 service mysql status 没有启动 查看rpm包安装的mysql rpm -qa | grep -i mysql 将这些都卸载了 rpm -e mysql5-server rpm -e mysql5-errmsg rpm -e my…

4G WiFi LoRa无线外夹式超声波管道流量计MQTT/http协议 json数据说明

ip&#xff1a;114.128.112.131 port&#xff1a;1883 uname&#xff1a;scwl_flowmeter pwd&#xff1a;b123 topic&#xff1a;iot/data/scwlflowmeter { “deviceId”:“设备序列号”, “flow”:“瞬时流量&#xff08;浮点数&#xff09;”, “heatFlow”:“瞬时热流量&am…

wangzherongyao 2023.08.23

1&#xff09;基本上我都是出制裁&#xff0c;一来够续航&#xff0c;二来死不死都是靠走位&#xff0c;制裁可限制回复英雄以及治疗英雄太多了&#xff1b; 2&#xff09;出个减速冰杖&#xff1b; 3&#xff09;对面威胁大&#xff0c;法师出时之预言&#xff0c;射手出个爆…

wx.request配置服务器域名,只能包含英文大小写字母、数字,解决办法

前言.小程序服务器域名配置常见错误及解决方法 1.配置入口&#xff1a; 小程序后台->-开发->开发设置->服务器域名 2.常见错误及原因分析&#xff1a; 3.实战中出现的错误 4.解决办法&#xff1a;应把域名后边的路径去掉&#xff0c;只写域名即可