Python可视化之pandas

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


1.解决坐标轴刻度负号乱码

import matplotlib.pyplot as plt
plt.rcParams['axes.unicode_minus']=False

2.解决中文乱码问题

# 以下方式二选一
plt.rcParams['font.sans-serif']=['Simhei']
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei'] 

3.折线图Series.plot()&DataFrame.plot()

  • Series.plot():
    kind:line(折线图),bar(垂直条形图)、barh(水平条形图)、hist(直方图)、box(箱型图)、kde(核密度估计图)与density相同,area(面积图)、pie(饼图)
da = pd.Series([1,5,3,4,5,2.2,7,6.5])
da.index.name='site'
da.plot(kind='line',linestyle='-.',color='c',marker='*')

在这里插入图片描述

  • DataFrame.plot():
    kind:line(折线图,默认),bar或barh(条形图)、hist(频率柱状图)、box(箱型图)、kde(密度图,需引用scipy包)与density相同,area(区域图,不同区域面积占比)、pie(饼图)、scatter(散点图)、hexbin()
da = pd.DataFrame({'A':[3,5,3,4,5,5,7,6.5],'B':[2,6,2,1,7,2.4,6,8.3]})
da.plot(kind='line',linestyle='-',color='c',marker='o',
        xticks=[2,4,6,8,10],yticks=[2,4,6,8,10],xlim=[-1,9],title='对比折线图')

在这里插入图片描述

4.条形图

da = pd.Series([1,5,3,4,5,2.2,7,6.5])
da.index=['a','b','c','d','e','f','g','h']
da.index.name='site'
da.plot(kind='bar',fontsize=12)

在这里插入图片描述

da = pd.DataFrame({'A':[3,5,3,4,5,5,7,6.5],'B':[2,6,2,1,7,2.4,6,8.3]})
da.index=['a','b','c','d','e','f','g','h']
da.index.name='site'
da.plot(kind='bar',fontsize=12)

在这里插入图片描述
直方图是一种可以对值频率进行离散化显示的柱状图。数据点被拆分到离散的、间隔均匀的面元中,绘制的是各面元中数据点的数量,bins=20表示数值分辨率,具体来说是将随机数设定一个范围

a = np.random.randn(100)

df = pd.DataFrame({'length':a})
df.plot.hist(bins=20)

在这里插入图片描述

df = pd.DataFrame({'a':np.random.randn(100)+1,'b':np.random.randn(100),'c':np.random.randn(100)-1},
                  index=range(1,101),columns=['a','b','c'])

df.plot.hist()

在这里插入图片描述
在这里插入图片描述
下图是对数值进行累加,并绘制横向直方图,横轴表示频率,cumulative=True表示将频率从大到小排列
在这里插入图片描述
在这里插入图片描述
df.diff().hist()的效果是将DataFrame当中column分开,即将a,b,c分开绘制成三张图,df.diff().hist()可达到这个效果
在这里插入图片描述

5.箱线图

线条从上到下分布表示:最小值,第一四分位、中位数、第三四分和最大值

  • 绘制方法:
    Series.plot.box()
    DataFrame.boxplot()
    DataFrame.plot.box()
  • 参数:
    boxes:盒身
    whiskers:盒须
    medians:中位数
    caps:最大值,最小值
    在这里插入图片描述
df.plot.box(color=dict(boxes='c',whiskers='r',medians='b',caps='g'),sym='r+')  #sym设置极端值样式

在这里插入图片描述
水平箱线图
在这里插入图片描述

6.区域面积图(堆积折线图)

np.random.seed(80)
a=np.random.rand(10,5)

df = pd.DataFrame(a,columns=['a','b','c','d','e'])

df.plot.area()#生成堆积图

在这里插入图片描述
在这里插入图片描述

7.散点图

np.random.seed(80)
a=np.random.rand(10,5)

df = pd.DataFrame(a,columns=['a','b','c','d','e'])

df.plot.scatter(x='b',y='a')

在这里插入图片描述
图形嵌套
在这里插入图片描述

8.饼图

Series.plot.pie()
DataFrame.plot.pie()

np.random.seed(80)

df = pd.Series(np.random.rand(5),index=['a','b','c','d','e'],name='series')
df.plot.pie(figsize=(6,6))

在这里插入图片描述

np.random.seed(80)

df = pd.DataFrame(np.random.rand(5,2),index=['a','b','c','d','e'],columns=['x','y'])
df.plot.pie(subplots=True, figsize=(12,6))

在这里插入图片描述

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-07 19:42:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-07 19:42:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-07 19:42:02       82 阅读
  4. Python语言-面向对象

    2024-04-07 19:42:02       91 阅读

热门阅读

  1. zynq gst-launch-1.0相关

    2024-04-07 19:42:02       31 阅读
  2. 顺序表应用——通讯录实现

    2024-04-07 19:42:02       32 阅读
  3. 《解释器模式(极简c++)》

    2024-04-07 19:42:02       40 阅读
  4. 【Linux】常用压缩命令(八)

    2024-04-07 19:42:02       32 阅读
  5. Swagger使用配置笔记

    2024-04-07 19:42:02       40 阅读
  6. 蓝桥杯刷题 前缀和与差分-[2128]重新排序(C++)

    2024-04-07 19:42:02       36 阅读
  7. 移动端h5 js手势封装

    2024-04-07 19:42:02       40 阅读
  8. C# 索引器的范例和要点

    2024-04-07 19:42:02       47 阅读
  9. leetcode热题100.数组中的第k大的元素

    2024-04-07 19:42:02       38 阅读
  10. [leetcode] 66. 加一

    2024-04-07 19:42:02       34 阅读