python饼状图写中文 lables 中文_Python可视化学习笔记

在机器学习的过程中或者在数据分析过程中,难免要对数据进行探索,人是视觉动物,所以一般可视化的方法非常重要,但是对于各种图形怎么用,一直是没有什么概念,这次学习数据分析实战,有一讲专门讲数据可视化,刚好梳理下。

从图形化的方法来说,主要是为了展示分布(比如数据几种在哪里?) ,对比(两个变量或多个变量的关系),部分和整体的关系(比如圆饼图),联系(多个变量之间的关系)。

Matplotlib是python中常用的工具包,方便画图。seaborn 包是基于matplotlib图形可视化的python包,它提供一种高度交互的界面,提供高层次的API封装,使作图更加容易。

安装这个包比较容易:

#安装包并安装这个包需要依赖的包

pip install seaborn -U

散点图

散点图主要表达多个变量之间的联系,如果数据集中包含上千个点,散点图是比较好的图表类型。

可以看出点是分布是集中还是分散的。

变量之间是否存在数量关联趋势。

如果存在关联关系是线性还是曲线的。

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

import seaborn as sns

# 数据准备

N = 1000

x = np.random.randn(N)

y = np.random.randn(N)

# 用Matplotlib画散点图

plt.scatter(x, y,marker='x')

plt.show()

# 用Seaborn画散点图

df = pd.DataFrame({'x': x, 'y': y})

#直方图

sns.jointplot(x="x", y="y", data=df, kind='scatter');

#带曲线的直方图

sns.jointplot(x="x", y="y", data=df, kind='reg');

plt.show()

27dfe5e0c943

Matplotlib画的图

27dfe5e0c943

seaborn

折线图

折线图可以用来表示数据随着时间变化的趋势。

非常适用于显示在相等的时间间隔下的数据趋势,比如财务的月度报表,季度报表等。

matplotlib 和seaborn 画出来的差别不大

27dfe5e0c943

折线图

import pandas as pd

import matplotlib.pyplot as plt

import seaborn as sns

# 数据准备

x = [2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019]

y = [5, 3, 6, 20, 17, 16, 19, 30, 32, 35]

# 使用Matplotlib画折线图

plt.plot(x, y)

plt.show()

# 使用Seaborn画折线图

df = pd.DataFrame({'x': x, 'y': y})

sns.lineplot(x="x", y="y", data=df)

plt.show()

复杂一点的折线图:

import pandas as pd

import matplotlib.pyplot as plt

import seaborn as sns

from numpy.random import randn

plt.style.use('ggplot')

plot_data1=randn(50).cumsum()

plot_data2=randn(50).cumsum()

plot_data3=randn(50).cumsum()

plot_data4=randn(50).cumsum()

fig=plt.figure(1,figsize=(10,8),facecolor="white")

ax=fig.add_subplot(1,1,1)

ax.spines["left"].set_color("white")

ax.spines["bottom"].set_color("white")

ax.plot(plot_data1,marker=r'o',markersize=4,markeredgecolor='black',color=u'blue',linestyle='-',label='Blue Solid')

ax.plot(plot_data2,marker=r'+',color=u'red',linestyle='--',label='Red Dash')

ax.plot(plot_data3,marker=r'*',color=u'green',linestyle='-.',label='Green Dash Dot')

ax.plot(plot_data4,marker=r's',color=u'orange',linestyle=':',label='Orange Dotted')

ax.xaxis.set_ticks_position('bottom')

ax.yaxis.set_ticks_position('left')

plt.title('Line Plots:Markers,Colors,and Linestyles')

plt.xlabel('Draw')

plt.ylabel('Random Number')

plt.legend(loc='best')

plt.grid()

plt.show()

27dfe5e0c943

复杂折线图

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

import seaborn as sns

# 构建 时间序列数据 从2000-1-31开始,以月份为间隔,构建100条记录

index = pd.date_range("1 1 2000", periods=100,freq="m", name="date")

data = np.random.randn(100, 4).cumsum(axis=0)

print(data)

# 构建5列数据,列名分别为data a b c d

wide_df = pd.DataFrame(data, index, ["a", "b", "c", "d"])

案例7:绘制时间序列数据

sns.lineplot(data=wide_df)

plt.show()

27dfe5e0c943

seaborn画复杂点图

直方图

直方图是比较常见的视图,是一种统计报告图,由一系列高度不等的线段表示数据的分布,

直观显示数据的变化情况。

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

import seaborn as sns

# 数据准备

a = np.random.randn(100)

s = pd.Series(a)

# 用Matplotlib画直方图

plt.hist(s)

plt.show()

# 用Seaborn画直方图

sns.distplot(s, kde=False)

plt.show()

sns.distplot(s, kde=False)

plt.show()

# 制定一些绘图参数

sns.distplot(s, rug=True, rug_kws={"color": "g"},

kde_kws={"color": "k", "lw": 3, "label": "KDE"},

hist_kws={"histtype": "step", "linewidth": 3,

"alpha": 1, "color": "g"})

plt.show()

27dfe5e0c943

直方图

条形图

通过条形图可以看到变量的数值分布,条形图可以帮我们查看类别的特征。

27dfe5e0c943

条形图

箱线图

箱线图又称盒式图,股市的走势就是直方图,由五个数值点组成:最大值(max),最小值(min),中位数(median)和上下四分位数(Q3,Q1)。

import pandas as pd

import matplotlib.pyplot as plt

import seaborn as sns

import numpy as np

# 数据准备

# 生成0-1之间的10*4维度数据

data=np.random.normal(size=(10,4))

lables = ['A','B','C','D']

# 用Matplotlib画箱线图

plt.boxplot(data,labels=lables)

plt.show()

# 用Seaborn画箱线图

df = pd.DataFrame(data, columns=lables)

sns.boxplot(data=df)

plt.show()

27dfe5e0c943

箱线图

饼状图

饼状图主要是说明整体和部分的关系。

27dfe5e0c943

饼状图

import matplotlib.pyplot as plt

import seaborn as sns

import matplotlib.pyplot as plt

# 数据准备

nums = [25, 37, 33, 37, 6]

labels = ['High-school','Bachelor','Master','Ph.d', 'Others']

# 用Matplotlib画饼图

plt.pie(x = nums, labels=labels)

plt.show()

热力图

热力图是由一组组方块组成,方块中用颜色的深浅来表示数值的大小,通过颜色判断数值的大小,颜色越浅,数值越大。

import matplotlib.pyplot as plt

import seaborn as sns

# 数据准备

flights = sns.load_dataset("flights")

data=flights.pivot('year','month','passengers')

# 用Seaborn画热力图

sns.heatmap(data)

plt.show()

27dfe5e0c943

热力图

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值