参考资料:https://mp.weixin.qq.com/s/llR14JKObuNn_OiuMA1CrQ
代码地址:https://github.com/SeafyLiang/Python_study/blob/master/pandas_study/13%E7%A7%8Dpandas%E5%86%85%E7%BD%AE%E7%94%BB%E5%9B%BE.ipynb
1、折线图
2、柱状图
3、散点图
4、饼图
5、箱型图
6、蜂窝图
7、直方图
9、密度图
10、面积图
11、多子图
12、散点矩阵图
13、平行分类图

  1. #!/usr/bin/env python
  2. # coding: utf-8
  3. # 下面是常见的参数及解释,详细的请参考官网:https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.plot.html
  4. # In[1]:
  5. import pandas as pd
  6. import numpy as np
  7. import matplotlib.pyplot as plt
  8. get_ipython().run_line_magic('matplotlib', 'inline')
  9. # In[2]:
  10. # 随机生成4*3的数据
  11. data = np.random.randn(4, 3)
  12. data
  13. # In[3]:
  14. df = pd.DataFrame(
  15. data, # 数据
  16. columns = ['col1', 'col2', 'col3'], # 属性
  17. index=['A', 'B', 'C', 'D'] # 索引
  18. )
  19. df
  20. # ## 1、折线图
  21. # In[5]:
  22. df.plot(kind="line")
  23. # In[7]:
  24. # 设置两个轴的名称
  25. df.plot(kind="line",xlabel="x_new",ylabel="y_new")
  26. # ## 2、柱状图
  27. # In[8]:
  28. # 写法1
  29. df.col1.plot(kind="bar",title="use pandas to make bar")
  30. # 写法2
  31. df["col1"].plot(kind="bar",title="use pandas to make bar")
  32. # 写法3
  33. df.col1.plot.bar(title="use pandas to make bar")
  34. # In[10]:
  35. # 多元素柱状图
  36. df.plot(kind='bar', title='bar')
  37. # In[11]:
  38. # 堆叠柱状图
  39. df.plot(kind='bar',stacked=True)
  40. # In[12]:
  41. # 水平柱状图
  42. df.plot.barh()
  43. # In[13]:
  44. # 水平堆叠柱状图
  45. df.plot.barh(stacked=True)
  46. # ## 3、散点图
  47. # In[14]:
  48. df.plot(kind='scatter', x='col1', y='col3')
  49. # In[16]:
  50. # 改变大小和颜色
  51. df.plot(kind="scatter", # 指定类型
  52. x="col1", y="col3", # 指定两个轴
  53. s=df["col2"] *500, # 点的大小
  54. c="r" # 点的颜色
  55. )
  56. # In[17]:
  57. # 带颜色棒的散点图
  58. df.plot.scatter(
  59. x='col1',
  60. y='col2',
  61. c='col3',
  62. s=50)
  63. # ## 4、饼图
  64. # In[19]:
  65. # 模拟新数据
  66. series = pd.Series(np.random.rand(4), index=['a', 'b', 'c', 'd'])
  67. series
  68. # In[20]:
  69. series.plot(kind='pie', figsize=(6, 6))
  70. # In[21]:
  71. df2 = pd.DataFrame(
  72. 5*np.random.rand(4, 2),
  73. index=['a', 'b', 'c', 'd'],
  74. columns=['x', 'y'])
  75. df
  76. # ## 5、箱型图
  77. # In[22]:
  78. df.plot(kind='box', y=df.columns)
  79. # In[23]:
  80. # 自定义箱型图
  81. # 自定义颜色
  82. color = {"boxes": "DarkGreen",
  83. "whiskers": "DarkOrange",
  84. "medians": "DarkBlue",
  85. "caps": "Gray"}
  86. df.plot.box(color=color, sym="r+")
  87. # In[24]:
  88. # 水平箱型图
  89. # 自定义颜色
  90. color = {"boxes": "DarkGreen",
  91. "whiskers": "DarkOrange",
  92. "medians": "DarkBlue",
  93. "caps": "Gray"}
  94. df.plot.box(color=color,
  95. vert=False, # 关键参数
  96. sym="r+")
  97. # In[25]:
  98. # 使用boxplot绘箱型图
  99. df.boxplot()
  100. # In[26]:
  101. # 使用boxplot绘箱型图
  102. df.boxplot(vert=False)
  103. # ## 6、蜂窝图
  104. # In[28]:
  105. # 模拟数据
  106. df1 = pd.DataFrame(
  107. np.random.randn(10000, 3),
  108. columns=['A', 'B', 'C'])
  109. df1
  110. # In[29]:
  111. # 基础蜂窝图
  112. df1.plot(kind='hexbin', x='A', y='B', gridsize=30)
  113. # In[30]:
  114. # 基础蜂窝图
  115. df1.plot(kind='hexbin', x='A', y='B', gridsize=100)
  116. # In[31]:
  117. # 改进版蜂窝图
  118. df1.plot(
  119. kind="hexbin",
  120. x="A",
  121. y="B",
  122. C="C", # 颜色深度的表示
  123. reduce_C_function=np.mean, # 指定不同聚合参数:mean/max/min/sum/std
  124. gridsize=30)
  125. # ## 7、直方图
  126. # In[32]:
  127. # 写法1
  128. df.plot(kind="hist",alpha=0.5)
  129. # 写法2
  130. df.plot.hist(alpha=0.5)
  131. # ## 9、密度图
  132. # In[33]:
  133. # 针对df
  134. df.plot(kind='kde')
  135. # In[34]:
  136. # 针对Series
  137. df['col1'].plot(kind='kde')
  138. # ## 10、面积图
  139. # In[35]:
  140. df.plot(kind='area', stacked=False)
  141. # ## 11、多子图
  142. #
  143. # 绘制子图主要的参数:
  144. #
  145. # subplots: 默认False, 如果希望每列绘制子图, 则赋值为True
  146. # layout: 子图的布局, 即画布被横竖分为几块, 如:(2,3)表示2行3列
  147. # figsize: 整个画布大小
  148. # In[36]:
  149. df.plot(subplots=True,
  150. layout=(1,3), # 1行3列
  151. figsize=(15,6),
  152. kind="bar"
  153. )
  154. # In[37]:
  155. # 共享y轴
  156. df.plot(subplots=True,
  157. layout=(1,3), # 1行3列
  158. figsize=(15,6),
  159. kind="bar",
  160. sharey=True # 开启共享y轴
  161. )
  162. # ## 12、散点矩阵图
  163. #
  164. # In[38]:
  165. # 单图导入
  166. from pandas.plotting import scatter_matrix
  167. scatter_matrix(df1,alpha=0.5,figsize=(14,6),diagonal="kde")
  168. # ## 13、平行分类图
  169. # In[41]:
  170. # 导图模块
  171. from pandas.plotting import parallel_coordinates
  172. parallel_coordinates(
  173. df, # 数据
  174. class_column="col1", # 分类名称所用字段
  175. color=('#556270', '#4ECDC4', '#C7F464') # 颜色设置
  176. )
  177. # 总结下Pandas内置绘图的特点:
  178. #
  179. # - 代码量少,最大的优点
  180. # - 快速简洁,基本绘图可以满足
  181. # - 静态化,非动态可视化
  182. # - 图片质量一般

1、折线图

image.pngimage.png

2、柱状图

image.pngimage.pngimage.pngimage.png

3、散点图

image.pngimage.pngimage.png

4、饼图

image.png

5、箱型图

image.pngimage.pngimage.pngimage.pngimage.png

6、蜂窝图

image.pngimage.pngimage.png

7、直方图

image.png

9、密度图

image.pngimage.png

10、面积图

image.png

11、多子图

image.png
image.png

12、散点矩阵图

image.png

13、平行分类图

image.png