Python制图形
- 编程知识
- 2023-05-26
- 11
一、Matplotlib库
Matplotlib是一个用于创建静态、动态和交互式可视化的Python库。它可以绘制条形图、饼图、散点图、折线图、柱状图等各种类型的图形。在Python中使用Matplotlib非常简单,只需通过导入库并使用各种函数调用即可。
import matplotlib.pyplot as plt
import numpy as np
x = np.array([1,2,3,4,5])
y = np.array([4,2,5,1,6])
plt.plot(x, y)
plt.show()
这段代码创建了一个简单的折线图。在导入Matplotlib库之后,我们定义了x和y数组,用来存储数据点的坐标。然后我们使用plt.plot函数来创建折线图,并使用plt.show()函数来显示结果。
除了折线图以外,Matplotlib还支持其他类型的图形。例如,我们可以使用plt.bar函数创建条形图,使用plt.scatter函数创建散点图,使用plt.pie函数创建饼图等等。
二、Seaborn库
Seaborn是一个基于Matplotlib库的Python可视化库。它提供了一些功能强大且易于使用的接口,用于绘制各种类型的图形,包括条形图、密度图、箱形图等等。与Matplotlib相比,Seaborn提供了更加美观和精美的图形效果。
import seaborn as sns
import pandas as pd
data = pd.read_csv('data.csv')
sns.displot(data['age'])
sns.displot(data['income'])
sns.displot(data['gender'], discrete=True)
plt.show()
这段代码使用Seaborn来创建了三个密度图。首先,我们读取了一个包含数据的CSV文件。然后,我们使用sns.displot函数来创建密度图,并使用plt.show()函数来显示结果。在这个例子中,我们分别创建了年龄、收入和性别三个特征的密度图。
三、Plotly库
Plotly是一个基于JavaScript的互动在线绘图库。虽然它是在Python、R和MATLAB等其他语言中使用的,但它最大的优势是可以创建高质量、互动式的可视化结果。Plotly提供了许多高级功能,例如3D绘图、动画、下拉菜单等等。
import plotly.graph_objects as go
import pandas as pd
data = pd.read_csv('data.csv')
fig = go.Figure(data=go.Scatter(x=data['age'], y=data['income'], mode='markers', marker=dict(size=10, color=data['gender'])))
fig.show()
这段代码使用Plotly创建了一个散点图,其中X轴表示年龄,Y轴表示收入,数据点的颜色表示性别。使用go.Figure函数创建一个新的图形,然后使用go.Scatter函数创建一个散点图。
四、Basemap库
Basemap是Python中一个用于绘制地图的库,它可以将地图作为背景,使用各种不同的投影方式来显示地球的不同部分。我们可以在地图上绘制各种其他信息,例如气象数据、国界线、城市和地标等等。
from mpl_toolkits.basemap import Basemap
import numpy as np
import matplotlib.pyplot as plt
map = Basemap(projection='robin', resolution = 'l', area_thresh = 1000.0, lat_0=0, lon_0=0)
map.drawcoastlines()
map.drawcountries()
plt.show()
这段代码使用Basemap绘制了一个世界地图,并在上面绘制了世界的海岸线和国界线。我们使用Basemap函数来创建一个新的地图,并根据需要设置投影方式,如上述例子中的Robin投影方式。
五、Bokeh库
Bokeh是一个Python库,用于创建交互性、互动式、动态和流式数据可视化的漂亮Web应用。它通过在Web浏览器中呈现大型、多维和实时数据集来提供高度的可视化能力。
from bokeh.plotting import figure, show
from bokeh.io import output_notebook
import pandas as pd
data = pd.read_csv('data.csv')
p = figure(title="Age vs Income", x_axis_label='Age', y_axis_label='Income')
p.circle(data['age'], data['income'], size=10, color='navy', alpha=0.5)
output_notebook()
show(p)
这段代码使用Bokeh库创建了一个散点图。我们首先导入必要的库并读取数据。然后我们创建一个新的figure对象,并在上面添加一个散点。最后,我们使用show函数显示结果。