技术标签: Python3常用到的函数总结 python 可视化 seaborn matplotlib plotly
Python有很多可视化库可以用于各类统计图的绘制,比如常用的matplotlib、seaborn、plotly、bokeh等。
下面简单介绍一些基本的统计图及其Python实现方法:
直方图是用于表示连续变量分布情况的一种统计图形。通常将连续变量按照一定的间隔分成若干个区间,然后统计每个区间内的样本数量,最后绘制成一个条形图,条形的高度表示该区间内的样本数量。在Python中,可以使用matplotlib库的hist()函数来绘制直方图,也可以使用seaborn库的distplot()函数来绘制带有密度曲线的直方图。
散点图是用于表示两个变量之间关系的一种统计图形。在Python中,可以使用matplotlib库的scatter()函数来绘制散点图,也可以使用seaborn库的scatterplot()函数来绘制。
折线图是用于表示随时间或其他连续变量变化的趋势的一种统计图形。在Python中,可以使用matplotlib库的plot()函数来绘制折线图,也可以使用seaborn库的lineplot()函数来绘制。
箱线图是用于表示数据分布情况的一种统计图形。它可以显示出数据的中位数、四分位数、最大值和最小值等统计信息。在Python中,可以使用matplotlib库的boxplot()函数来绘制箱线图,也可以使用seaborn库的boxplot()函数来绘制。
热力图是用于表示二维变量关系的一种统计图形,通常将变量分别放在X轴和Y轴上,然后用颜色来表示变量之间的关系。在Python中,可以使用matplotlib库的imshow()函数来绘制热力图,也可以使用seaborn库的heatmap()函数来绘制。
饼图是用于表示分类变量占比的一种统计图形。在Python中,可以使用matplotlib库的pie()函数来绘制饼图。
条形图是用于比较不同分类变量之间数量差异的一种统计图形。在Python中,可以使用matplotlib库的bar()函数来绘制条形图,也可以使用seaborn库的barplot()函数来绘制。
除了以上几种常见的统计图形外,Python的可视化库还支持很多其他类型的统计图形,如散步图(Scatter Plot Matrix)、密度图(Density Plot)等,可以根据实际需要进行选择和使用。
直方图是一种用于展示数值数据分布情况的图形,它将数据范围划分成一些小的区间,然后计算每个区间内数据出现的频数或频率,并以矩形的形式绘制在图表上。
在 Python 中,可以使用 matplotlib 库绘制直方图。下面是一个简单的例子:
import matplotlib.pyplot as plt
import numpy as np
# 生成一些随机数据
data = np.random.randn(1000)
# 绘制直方图
plt.hist(data, bins=20, color='blue', alpha=0.5)
plt.title('Histogram of Random Data')
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.show()
在上面的代码中,我们首先生成了 1000 个随机数作为数据,然后使用 hist() 函数绘制直方图。bins 参数指定将数据划分为的区间数,color 参数设置矩形的颜色,alpha 参数设置矩形的透明度。最后,我们添加了标题和坐标轴标签,并使用 show() 函数显示图表。
除了 matplotlib,Seaborn 也提供了绘制直方图的函数 distplot(),它可以在直方图的基础上添加拟合的概率密度函数曲线。下面是一个简单的例子:
import seaborn as sns
import numpy as np
# 生成一些随机数据
data = np.random.randn(1000)
# 绘制直方图和概率密度函数曲线
sns.distplot(data, bins=20, kde=True, color='green')
plt.title('Histogram with Density Plot')
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.show()
在上面的代码中,我们使用 distplot() 函数绘制了直方图和概率密度函数曲线。kde 参数设置是否绘制拟合的概率密度函数曲线。其他参数的含义和 hist() 函数类似。最后,我们添加了标题和坐标轴标签,并使用 show() 函数显示图表。
散点图(scatter plot)是一种常见的二维数据可视化方法,用于表示两个变量之间的关系。散点图中每个点的横坐标和纵坐标分别表示两个变量的值,点的位置越靠近一条直线,说明两个变量之间的关系越密切。
在 Python 中,使用 Matplotlib 库的 scatter 函数可以绘制散点图。下面是一个简单的例子:
import matplotlib.pyplot as plt
import numpy as np
# 生成随机数据
x = np.random.rand(50)
y = np.random.rand(50)
# 绘制散点图
plt.scatter(x, y)
plt.show()
这段代码生成了一个包含 50 个随机点的散点图。可以通过调整 x 和 y 数组的值来改变散点图的分布情况。可以通过 scatter 函数的参数来设置点的颜色、大小、形状等属性,以及图表的标题、横纵坐标的标签等属性。
折线图常用于展示数据随时间或其他连续性变量的趋势。绘制折线图需要使用Matplotlib库中的plot()函数。
下面是一个绘制折线图的简单示例:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [3, 6, 1, 9, 5]
plt.plot(x, y)
plt.show()
这段代码将生成一个简单的折线图,其中x轴表示时间或其他连续性变量,y轴表示数据。在这个示例中,我们创建了两个列表x和y,分别表示时间和对应的数据,然后将它们传递给plot()函数。最后,我们使用show()函数显示图形。
如果需要添加标题,x轴标签,y轴标签等,可以使用xlabel(),ylabel()和title()函数,例如:
plt.xlabel('Time')
plt.ylabel('Data')
plt.title('Data Trends Over Time')
此外,还可以在plot()函数中使用各种样式和属性来自定义折线的颜色、线型、标记等,例如:
plt.plot(x, y, color='red', linestyle='dashed', marker='o', markerfacecolor='blue', markersize=8)
这个示例将折线的颜色设置为红色,线型设置为虚线,标记设置为圆形,标记填充颜色设置为蓝色,标记大小设置为8。您可以根据需要使用其他属性和样式来自定义折线图。
箱型图(Box Plot)是一种用于显示数据分布情况的图形。箱型图主要由五个数值点组成,分别是最小值、第一四分位数、中位数、第三四分位数和最大值,其中第一四分位数和第三四分位数之间的区域被称为箱子(IQR),箱子内的线代表中位数。箱子上下的线段称为“触须”,表示数据的范围,超过“触须”范围之外的数据点被称为离群值(outliers)。
绘制箱型图可以使用Python中的Matplotlib库或Seaborn库,常用的函数是plt.boxplot()和sns.boxplot()。使用这些函数时,需要输入数据,并可以选择设置一些参数,如颜色、线型、标签等,以美化图形并提高可读性。
下面是一个示例代码,用于绘制一组随机数的箱型图:
import numpy as np
import matplotlib.pyplot as plt
# 生成100个随机数
data = np.random.normal(size=100)
# 绘制箱型图
plt.boxplot(data)
# 添加标题和标签
plt.title('Box plot of random data')
plt.xlabel('Data')
plt.ylabel('Value')
# 显示图形
plt.show()
这段代码生成100个随机数,然后使用plt.boxplot()函数绘制箱型图。最后使用plt.title()、plt.xlabel()和plt.ylabel()函数添加标题和标签,并使用plt.show()函数显示图形。
热力图(Heatmap)是一种基于颜色变化来展示数据密度的二维图表,通常用于显示矩阵数据。热力图中,数据通过颜色变化的深浅来表示数据的大小或者分布情况,一般而言,颜色较深的地方代表数据较大或者数据较为集中,颜色较浅的地方代表数据较小或者数据较为分散。
在Python中,可以使用多种工具和库来绘制热力图,其中比较常用的有以下几种:
下面是一个使用Seaborn绘制热力图的示例代码,假设我们有一份包含多个人对于多个商品评分的数据,需要绘制一个评分热力图来观察不同人对于不同商品的评分情况:
import numpy as np
import pandas as pd
import seaborn as sns
# 生成评分数据
np.random.seed(0)
data = pd.DataFrame(np.random.randint(0, 11, size=(10, 5)),
columns=['Product A', 'Product B', 'Product C', 'Product D', 'Product E'],
index=['User %d' % i for i in range(1, 11)])
# 绘制热力图
sns.heatmap(data, cmap='coolwarm', annot=True, fmt='d')
# 设置图表标题
plt.title('Product Rating Heatmap')
在上述代码中,我们使用了Seaborn库中的heatmap()方法来绘制热力图,其中data参数指定了绘制热力图所需的数据,cmap参数指定了使用的颜色映射方案,annot参数指定了是否在热力图中显示每个数据点的具体数值,fmt参数指定了数据点数值的显示格式。最终,我们可以通过调用plt.title()方法来为热力图添加一个标题。
要使用Matplotlib库中的imshow()方法绘制热力图,需要先将数据转换成一个二维矩阵。以下是一个简单的例子:
import numpy as np
import matplotlib.pyplot as plt
# 生成随机数据
data = np.random.rand(10, 10)
# 绘制热力图
plt.imshow(data, cmap='hot', interpolation='nearest')
plt.colorbar()
plt.show()
在上面的代码中,首先生成一个10x10的随机矩阵,然后使用imshow()方法将其绘制成热力图。其中,cmap参数指定了颜色映射方案,interpolation参数指定了插值方法,colorbar()方法可以添加一个颜色条。最后使用show()方法展示图像。
你可以根据实际需要修改数据和参数以绘制符合自己需求的热力图。
使用plotly库绘制热力图可以方便地添加交互式功能,具有更好的可视化效果。下面是使用plotly库中的heatmap()方法绘制热力图的步骤:
import plotly.graph_objs as go
import plotly.offline as pyo
import numpy as np
# 生成随机数据
np.random.seed(1)
z = np.random.randint(0, 10, (5, 5))
# 定义热力图的数据
heatmap_data = go.Heatmap(z=z)
# 定义布局
layout = go.Layout(title='Heatmap Example', xaxis_title='X Axis', yaxis_title='Y Axis')
# 绘制热力图
fig = go.Figure(data=[heatmap_data], layout=layout)
pyo.iplot(fig)
完整代码如下:
import plotly.graph_objs as go
import plotly.offline as pyo
import numpy as np
# 生成随机数据
np.random.seed(1)
z = np.random.randint(0, 10, (5, 5))
# 定义热力图的数据
heatmap_data = go.Heatmap(z=z)
# 定义布局
layout = go.Layout(title='Heatmap Example', xaxis_title='X Axis', yaxis_title='Y Axis')
# 绘制热力图
fig = go.Figure(data=[heatmap_data], layout=layout)
pyo.iplot(fig)
运行上述代码,就可以得到一个简单的热力图示例。
饼图(Pie chart)是一种用于展示数据占比的图形。饼图的原理是把一个圆形分成若干份,每一份的大小与数据中的相应部分的比例成正比。饼图通常用于展示相对比例较小的数据。
在Python中,使用matplotlib库可以很方便地绘制饼图。下面是一个简单的例子:
import matplotlib.pyplot as plt
# 数据
labels = ['A', 'B', 'C', 'D']
sizes = [20, 30, 40, 10]
# 绘图
plt.pie(sizes, labels=labels)
# 显示
plt.show()
这段代码会生成一个包含四个扇形的饼图,每个扇形的大小分别对应20%、30%、40%和10%。labels参数是一个字符串列表,用于指定每个扇形的标签;sizes参数是一个数值列表,用于指定每个扇形的大小。
当然,matplotlib库还提供了很多其他的参数可以用来控制饼图的样式,比如指定颜色、添加阴影等等。如果需要进一步定制饼图的样式,可以查看matplotlib的官方文档。
条形图(Bar Plot)是一种用于展示类别型变量之间差异的图形,通常用于展示离散变量的频数或频率。在Python中,可以使用多个库绘制条形图,比如matplotlib、seaborn和plotly等。
import matplotlib.pyplot as plt
import numpy as np
# 需要绘制的数据
x = ['A', 'B', 'C', 'D', 'E']
y = [10, 8, 6, 4, 2]
# 创建画布和子图
fig, ax = plt.subplots()
# 设置图形属性
ax.set_title('Bar Plot Example')
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
# 绘制条形图
ax.bar(x, y)
# 显示图形
plt.show()
以上代码将绘制一个简单的条形图,如果需要更改图形属性或增加其他元素,可以使用matplotlib库提供的其他方法和函数进行调整。
Seaborn是一个基于matplotlib的数据可视化库,它提供了一些方便快捷的绘图函数,包括条形图。下面给出一个使用Seaborn绘制条形图的例子:
假设我们有如下数据:
import pandas as pd
import numpy as np
np.random.seed(0)
data = pd.DataFrame({
'A': np.random.rand(5),
'B': np.random.rand(5),
'C': np.random.rand(5)})
我们可以使用barplot函数绘制条形图:
import seaborn as sns
sns.barplot(data=data)
这会生成一个默认的条形图,其中x轴表示不同的列(A、B、C),y轴表示值。默认情况下,Seaborn会计算每列的平均值,并绘制其误差线(95%置信区间)。我们可以通过ci参数来控制误差线的宽度:
sns.barplot(data=data, ci='sd')
其中,ci参数可以取值为:
我们还可以使用hue参数来指定分类变量,并使用不同颜色来区分不同的类别:
data['D'] = ['x', 'x', 'y', 'y', 'z']
sns.barplot(data=data, x='D', y='A', hue='D')
这会生成一个针对分类变量D的条形图,其中x轴表示D的不同取值(x、y、z),y轴表示A的值。不同的颜色表示不同的类别。
绘制条形图可以使用 plotly.graph_objs 中的 Bar 类,以及 plotly.express 中的 bar 函数。
下面是一个使用 plotly.graph_objs 绘制简单条形图的例子,假设我们有如下数据:
import pandas as pd
data = {
'weekday': ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'],
'sales': [110, 80, 120, 90, 100, 130, 140]
}
df = pd.DataFrame(data)
我们可以使用 Bar 类创建一个条形图对象,然后将其添加到一个 Figure 对象中,并使用 show 方法显示图形:
import plotly.graph_objs as go
fig = go.Figure()
fig.add_trace(go.Bar(
x=df['weekday'],
y=df['sales'],
name='Sales'
))
fig.update_layout(
title='Weekly Sales',
xaxis_title='Weekday',
yaxis_title='Sales'
)
fig.show()
这将绘制一个简单的条形图,其中 X 轴显示工作日,Y 轴显示每个工作日的销售量。
另外,使用 plotly.express 可以更快速地绘制简单的条形图,下面是一个例子:
import plotly.express as px
fig = px.bar(df, x='weekday', y='sales', title='Weekly Sales')
fig.show()
这段代码将使用 plotly.express 的 bar 函数,快速绘制一个与前面相同的图形。
散步图(Scatter plot)是一种用于研究两个变量之间关系的图表类型。它在直角坐标系上以点的形式绘制数据,其中一个变量被映射到水平轴(x轴),另一个变量被映射到垂直轴(y轴),因此每个点的位置表示这两个变量的值。散点图通常用于发现变量之间的关系和趋势,以及寻找数据中的异常值和离群点。
Python中可以使用多个库来绘制散点图,包括:
下面是使用Matplotlib和Seaborn绘制散点图的示例代码:
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.random.randn(100)
y = np.random.randn(100)
# 绘制散点图
plt.scatter(x, y)
# 添加标题和坐标轴标签
plt.title('Scatter plot')
plt.xlabel('X axis')
plt.ylabel('Y axis')
# 显示图形
plt.show()
import seaborn as sns
import numpy as np
# 生成数据
x = np.random.randn(100)
y = np.random.randn(100)
# 绘制散点图
sns.scatterplot(x=x, y=y)
# 添加标题和坐标轴标签
plt.title('Scatter plot')
plt.xlabel('X axis')
plt.ylabel('Y axis')
# 显示图形
plt.show()
密度图(Density Plot)是一种用来表示数据分布情况的图形,通常是通过核密度估计方法来估计数据分布的概率密度,并将结果绘制成连续的曲线。密度图可以更直观地展示数据的分布情况,相比直方图和箱型图等方法,可以更准确地表示数据分布的趋势和形态。
Python中可以使用多个库来绘制密度图,包括matplotlib、seaborn和plotly等。下面以seaborn库为例,介绍如何使用Python绘制密度图。
首先需要安装seaborn库,可以使用pip命令进行安装:
pip install seaborn
接下来,可以使用seaborn库中的distplot()方法绘制密度图。以下是一个简单的示例代码:
import seaborn as sns
import numpy as np
# 生成随机数据
data = np.random.normal(size=1000)
# 绘制密度图
sns.distplot(data)
在这个示例中,首先生成了1000个随机数作为数据,然后使用distplot()方法绘制密度图。distplot()方法可以自动计算数据的核密度估计,并绘制出连续的曲线。可以通过调整参数来修改图形的样式和布局。例如,可以使用rug参数添加样本点标记,使用kde参数关闭核密度估计,使用bins参数调整直方图的宽度等。
文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib
文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang
文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些
文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器
文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距
文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器
文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn
文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios
文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql
文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...
文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120
文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数