Matplotlib_常用图表

Matplotlib绘图一般用于数据可视化

1.常用的图表有:

  • 折线图(坐标系图)
  • 散点图/气泡图
  • 条形图/柱状图
  • 饼图
  • 直方图
  • 箱线图
  • 热力图

折线图(坐标系图)

折线图用于显示随时间或有序类别的变化趋势

#载入matplotlib绘图库
import matplotlib.pyplot as plt

# 绘制一条线时,x轴可以省略,默认用y轴数据的索引代替
plt.plot([0,2,4,6,8]) # 默认Y轴坐标

plt.plot([0,2,4,6,8],[1,5,3,9,7]) # X轴坐标值,Y轴坐标值

plt.show() #显示图片

线条和标记节点样式

标记字符:标记线条中的点

  • 线条颜色,color='g'
  • 线条风格,linestyle='--'
  • 线条粗细,linewidth=5.0
  • 标记风格,marker='o'
  • 标记颜色,markerfacecolor='b'
  • 标记尺寸,markersize=20
  • 透明度,alpha=0.5

线条和标记节点格式字符

  • 如果不设置颜色,系统默认会取一个不同颜色来区别线条
  • 图像打印时,黑白打印机不能区分颜色,需要风格区分

折线图案例:2017年7月国际外汇

时间    收盘价
2017年7月3日    6.8007
2017年7月4日    6.8007
2017年7月5日    6.8015
2017年7月6日    6.8015
2017年7月7日    6.8060
2017年7月10日    6.8036
2017年7月11日    6.8025
2017年7月12日    6.7877
2017年7月13日    6.7835
2017年7月14日    6.7758
2017年7月17日    6.7700
2017年7月18日    6.7463
2017年7月19日    6.7519
2017年7月20日    6.7595
2017年7月21日    6.7669
2017年7月24日    6.7511
2017年7月25日    6.7511
2017年7月26日    6.7539
2017年7月27日    6.7430
2017年7月28日    6.7374
2017年7月31日    6.7265

import matplotlib.pyplot as plot
date = [3,4,5,6,7,10,11,12,13,14,17,18,19,20,21,24,25,26,27,28,31]
eurcny = [6.8007, 6.8007, 6.8015, 6.8015, 6.8060, 6.8036, 6.8025, 6.7877, 6.7835, 6.7758, 6.7700, 6.7463, 6.7519, 6.7595, 6.7669, 6.7511, 6.7511, 6.7539, 6.7430, 6.7374, 6.7265]

plot.plot(
    date, #X坐标
    eurcny, #Y坐标
    
    color = '#00ff00', #折线颜色
    linestyle = '--',
    linewidth = 2,
    
    marker = 'o', #节点样式
    markerfacecolor = '#00FFFF', #节点颜色
    markersize = 5,
    
    alpha = 0.5, #透明色
    
)
plot.show()

散点图

散点图表示多组数据之间的相关性

import matplotlib.pyplot as plot
x = [1,3,5,7,9,11,13,15,17]
y = [2,-5,19,3,5,8,12,6,1]

plot.scatter(
    x,
    y,
)
plot.show()

import matplotlib.pyplot as plot

x = [1,3,5,7,9,11,13,15,17] y = [2,-5,19,3,5,8,12,6,1] plot.scatter( x, y, # 散点大小 s = [1,10,30,60,100,300,500,800,1000], color = 'r', marker = 'H', linewidth = 10, alpha = 0.3, ) #折线图 plot.plot([1,3,9,2,5,4,1,5,9,12,30,22,1,5,10]) plot.show()

案例:可视化居民年龄/收入和超市销售额的对应关系

年龄    收入    销售额
34    350    123
40    450    114
37    169    135
30    189    139
44    183    117
36    80    121
32    166    133
26    120    140
32    75    133
36    40    133

找出:

  • 客户年龄和销售额的关系
  • 客户收入和销售额的关系
#年龄
age = [34, 40, 37, 30, 44, 36, 32, 26, 32, 36]
#收入
income = [350, 450, 169, 189, 183, 80, 166, 120, 75, 40]
#销售额
sales = [123, 114, 135, 139, 117, 121, 133, 140, 133, 133]

plot.scatter(
    age,
    sales,

)
plot.show()

plot.scatter(
    income,
    sales,

)
plot.show()

#x轴,y轴 ,点大小,三个维度
plot.scatter(
    age,
    sales,
    s = income,
)

plot.show()

猜你喜欢

转载自www.cnblogs.com/doitjust/p/9275923.html