pandas 常见绘图总结

本文主要介绍了pandas在0.25.3版本中的数据可视化功能,包括设置字体和显示中文,以及线形图、条形图(垂直与水平)、饼图、散点图(普通、气泡和多组)、面积图、箱线图、直方图和核密度曲线的绘制方法。通过实例展示了各类图表的用法,帮助理解如何利用pandas进行数据可视化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pandas 常见绘图总结

前言

pandas的强大让人毋庸置疑,一个集数据审阅、处理、分析、可视化于一身的工具,非常好用。
大家都知道,Matplotlib 是众多 Python 可视化包的鼻祖,也是Python最常用的标准可视化库,其功能非常强大,同时也非常复杂,想要搞明白并非易事。所幸pandas本身就有数据可视化的功能已经可以满足我们大部分的要求了,也就省下了我们很多自己使用 如 Matplotlib 来数据可视化的工作。

一 设置字体和显示中文

Pandas在绘图时,会显示中文为方块,主要原因有二: matplotlib 字体问题,seaborn 字体问题。
没有中文字体,所以我们只要手动添加中文字体的名称就可以了,不过并不是添加我们熟悉的“宋体”或“黑体”这类的名称,而是要添加字体管理器识别出的字体名称,matplotlib自身实现的字体管理器在文件font_manager.py中,自动生成的可用字体信息在保存在文件fontList.cache里,可以搜索这个文件查看对应字体的名称,例如simhei.ttf对应的名称为’SimHei’,simkai.ttf对应的名称为’KaiTi_GB2312’等。因此我们只要把这些名称添加到配置文件中去就可以让matplotlib显示中文。


import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['KaiTi']
mpl.rcParams['font.serif'] = ['KaiTi']
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题,或者转换负号为字符串

import seaborn as sns
sns.set_style("darkgrid",{
   
   "font.sans-serif":['KaiTi', 'Arial']})   #这是方便seaborn绘图得时候得字体设置

二 pandas 可视化(0.25.3版本)

“有道无术术尚可求,有术无道,止于术。”
这段话在可视化里面的意思就是:首相想清楚你要干嘛,不要一上来就瞎画一堆图,自己觉得NB,但是图都错的再牛逼也只是好看,并没什么作用。
画图前你要思考这几个问题:

  • 你为什么要画图?
  • 你要画什么图?
  • 你这样画图对不对?

1 线形图

普通折线图以折线的上升或下降来表示统计数量的增减变化的统计图,叫作折线统计图。折线统计图不仅可以表示数量的多少,而且可以反映同一事物在不同时间里的发展变化的情况,虽然它不直接给出精确的数据(当然你也可以加上去),但是能够显示数据的变化趋势,反映事物的变化情况。

pandas 有两种绘制线形图的方法,一种是下面这种直接的利用DataFrame.plot()

test_dict = {
   
   '销售量':[1000,2000,5000,2000,4000,3000],'收藏':[1500,2300,3500,2400,1900,3000]}
line = pd.DataFrame(test_dict,index=['一月','二月','三月','四月','五月','六月'])
line.
<think>好的,我现在需要回答用户关于Pandas绘图中marker参数的问题。首先,我要确认用户的需求是什么。用户想查找Pandas绘图中marker参数的相关说明或参数表,也就是具体的参数列表和用法。所以我的回答需要包含这些信息。 接下来,我需要回忆Pandas的plot函数。记得Pandas绘图功能是基于Matplotlib的,所以很多参数其实是传递给Matplotlib的。特别是plot方法的kind参数如果是'scatter'或'line'时,可能会用到marker参数。不过,用户可能是在使用不同的图表类型,比如折线图或者散点图,这时候marker的用法可能有所不同。 然后,我需要确认在Pandas的官方文档中,关于plot函数的参数是否有提到marker。根据用户提供的引用[4],DataFrame.plot()函数的参数包括很多,但没有直接列出marker。这可能意味着marker参数需要通过**kwargs传递给底层的Matplotlib方法,比如plt.plot()或者plt.scatter()。 接下来,我应该查找Matplotlib中关于marker的文档。根据Matplotlib的官方资料,marker参数接受不同的字符来指定标记的样式,比如圆圈'o',方块's',星号'*'等。这些标记样式应该可以直接在Pandas的plot函数中使用,通过传递marker参数。 但用户可能遇到的问题是,在使用Pandas绘图时,如何正确应用这些参数。例如,在折线图中设置marker,或者在散点图中设置点的形状。这时需要明确不同的图表类型可能需要不同的参数传递方式。例如,在散点图中,可能需要使用scatter函数的参数,而在折线图中,则可以直接在plot方法中添加marker参数。 另外,用户提供的引用[5]中提到,图例显示有问题,可能和marker的设置有关。这说明在某些情况下,即使正确设置了marker,图例可能不会自动更新,需要手动调用ax.legend()来刷新图例。这也需要在回答中提到,作为可能遇到的注意事项。 现在需要整理这些信息,给出一个结构清晰的回答。首先介绍marker参数的作用,然后列出常见的参数值,接着说明如何在Pandas的plot方法中使用,可能包括不同图表类型的示例,比如折线图和散点图。然后需要提到注意事项,比如图例的问题和参数传递的方式。 同时,要确保回答中引用了用户提供的参考资料,特别是引用[4]和[5],因为这些是用户提供的站内引用,需要正确标注来源。例如,在提到DataFrame.plot()的参数时引用[4],在讨论图例问题时引用[5]。 最后,生成相关问题,帮助用户进一步探索相关内容。例如,关于如何自定义颜色或线条样式,如何保存图表,或者如何处理图例问题等。 在组织回答时,要使用中文,确保行内公式用$...$,独立公式用$$...$$,但在这个问题中可能不太涉及数学公式,所以需要检查是否有必要使用。当前问题不涉及数学表达式,所以可能不需要,但需要保持LaTeX语法正确。 总结步骤: 1. 介绍marker参数的作用,指出其继承自Matplotlib。 2. 列出常见的marker参数值,例如'o', 's', '*'等。 3. 提供在Pandas中使用marker的示例,如折线图和散点图。 4. 提到注意事项,如图例问题需要手动处理。 5. 引用相关的参考资料,特别是引用[4]和[5]。 6. 生成相关问题,如参数列表、样式自定义、图例处理等。 现在需要验证这些信息是否正确。例如,确认在Pandas的plot方法中确实可以通过marker参数传递这些值,并且不同的图表类型是否支持。例如,在折线图(kind='line')中,marker参数有效,而在散点图(kind='scatter')中,可能需要使用不同的参数,如's'来指定标记大小,但形状可能需要通过其他参数设置。或者,是否在散点图中,marker参数同样适用? 查阅Matplotlib的scatter文档,发现散点图的标记形状是通过marker参数控制的,例如plt.scatter(x, y, marker='o')。但是在Pandas的DataFrame.plot(kind='scatter')中,可能需要传递同样的参数。需要确认Pandas是否允许在plot函数中直接传递marker参数给底层的Matplotlib函数。 假设在Pandas中,当使用plot(kind='line')时,可以通过marker参数设置标记样式,而当使用plot(kind='scatter')时,可能需要通过scatter的特定参数,如s(大小)、c(颜色)等,但标记形状可能还是通过marker参数设置。因此,在回答中需要区分不同图表类型的用法,或者统一说明可以通过**kwargs传递参数。 例如,在折线图中: df.plot(kind='line', marker='o') 在散点图中: df.plot(kind='scatter', x='x_col', y='y_col', marker='s') 但需要确认是否在散点图中确实支持marker参数。根据引用[3],绘制散点图时通过x和y参数指定数据,可能其他参数如s(大小)、c(颜色)需要设置。但marker参数可能是否有效? 可能需要进一步验证。例如,查看Pandas文档或测试代码。假设在Pandas的plot.scatter()方法中,参数包括marker,那么就可以在scatter图中使用。否则,可能需要通过其他方式设置。 根据Pandas的官方文档,DataFrame.plot.scatter()的参数包括s(大小)、c(颜色)、marker(标记样式)等。因此,在散点图中可以直接使用marker参数。 因此,在回答中,可以给出两种示例:折线图和散点图中使用marker参数的示例,并说明它们如何传递参数。 同时,注意事项部分需要提到,当使用不同图表类型时,可能需要查阅对应的Matplotlib文档,因为参数可能会有所不同,但大多数情况下可以通过**kwargs传递。 最后,生成的相关问题需要围绕Pandas绘图的参数使用、常见问题解决、样式自定义等方面。</think>在Pandas绘图中,`marker`参数用于控制数据点的标记样式,其用法继承自Matplotlib[^4]。以下是常见`marker`参数列表及用法说明: --- ### 常用`marker`参数列表 | 参数值 | 描述 | 示例符号 | |--------|--------------------|----------| | `'o'` | 圆形 | ● | | `'s'` | 正方形 | ■ | | `'D'` | 菱形 | ◆ | | `'*'` | 星号 | ✶ | | `'+'` | 加号 | + | | `'x'` | 叉号 | × | | `'^'` | 正三角形(向上) | ▲ | | `'v'` | 倒三角形(向下) | ▼ | | `'.'` | 点 | · | | `'|'` | 垂直线 | ▏ | --- ### 在Pandas中的使用方法 1. **折线图**:通过`marker`直接指定标记样式 ```python df.plot(kind='line', marker='o') # 用圆形标记数据点 ``` 2. **散点图**:结合`x`和`y`参数使用 ```python df.plot(kind='scatter', x='x_col', y='y_col', marker='s') # 用正方形标记 ``` 3. **混合样式**:通过`style`参数组合线条和标记 ```python df.plot(style='--o') # 虚线(--) + 圆形标记(o) ``` --- ### 注意事项 1. **图例显示问题**:若图例未正确显示标记样式,需手动调用`ax.legend()`[^5]。 2. **参数传递**:`marker`需通过`**kwargs`传递给Matplotlib底层方法(如`plt.plot()`)[^4]。 3. **更多样式**:完整参数列表需参考Matplotlib官方文档。 ---
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值