Python-实现图表绘制总结

Python是一种强大和流行的编程语言,非常适合进行数据分析和可视化。在Python中,有许多库和工具可供用来创建各种图表,如线图、柱状图、散点图、饼图、雷达图、热力图、地图等。本文将基于Python库Matplotlib、Seaborn、Plotly以及关联的包来介绍图表绘制的方法和用法,并提供案例说明。

一、Matplotlib的使用

1. Matplotlib简介

Matplotlib是Python科学计算的一个重要库。它可以用来创建各种图形,包括线形图、散点图、柱状图、直方图、3D图等。同时,Matplotlib提供了一些常用的绘图功能,如标注、图例、网格、坐标轴、文字等。

2. Matplotlib的基本用法

Matplotlib中最基本的两个绘图函数是plot和scatter。其中plot创建线形图,scatter创建散点图。具体用法如下:

```

import matplotlib.pyplot as plt

import numpy as np

# 创建一个线形图

x = np.linspace(0, 10, 100)

y = np.sin(x)

plt.plot(x, y)

plt.show()

# 创建一个散点图

x = np.random.randn(100)

y = np.random.randn(100)

plt.scatter(x, y)

plt.show()

```

其中,np.linspace用于创建一个等差数列,np.sin用于求正弦函数,np.random.randn用于生成服从正态分布的随机数。

除了线形图和散点图,Matplotlib还支持其他类型的图表,如条形图、饼图、直方图等。具体用法如下:

```

import matplotlib.pyplot as plt

import numpy as np

# 创建一个条形图

x = ['a', 'b', 'c', 'd']

y = [3, 6, 1, 7]

plt.bar(x, y)

plt.show()

# 创建一个饼图

labels = ['a', 'b', 'c', 'd']

sizes = [15, 30, 45, 10]

colors = ['red', 'green', 'blue', 'yellow']

explode = (0, 0.1, 0, 0)

plt.pie(sizes, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', startangle=90)

plt.axis('equal')

plt.show()

# 创建一个直方图

x = np.random.randn(1000)

plt.hist(x, bins=20)

plt.show()

```

3. Matplotlib的高级用法

除了基本的绘图功能外,Matplotlib还提供了许多高级用法,如多个子图、标注、图例等。具体用法如下:

```

import matplotlib.pyplot as plt

import numpy as np

# 创建多个子图

x = np.linspace(0, 10, 100)

y1 = np.sin(x)

y2 = np.cos(x)

fig, axes = plt.subplots(2, 1)

axes[0].plot(x, y1)

axes[1].plot(x, y2)

plt.show()

# 添加标注和图例

x = np.linspace(0, 10, 100)

y = np.sin(x)

plt.plot(x, y, label='sin(x)')

plt.xlabel('x')

plt.ylabel('y')

plt.title('plot')

plt.annotate('max', xy=(np.pi/2, 1), xytext=(np.pi/2+1, 1.5), arrowprops=dict(facecolor='black', shrink=0.05))

plt.legend()

plt.show()

```

二、Seaborn的使用

1. Seaborn简介

Seaborn是基于Matplotlib的Python数据可视化库,具有对统计数据可视化的内置支持。Seaborn可以用于创建各种统计图表,如线形图、散点图、柱状图、直方图、密度图、热力图、面积图等。

2. Seaborn的基本用法

Seaborn的用法与Matplotlib类似,其主要区别在于其更强大的数据可视化和统计学支持。以下是Seaborn的基本用法:

```

import seaborn as sns

import numpy as np

# 创建一个线形图

x = np.linspace(0, 10, 100)

y = np.sin(x)

sns.lineplot(x=x, y=y)

sns.set_style('darkgrid')

sns.despine()

sns.show()

# 创建一个散点图

x = np.random.randn(100)

y = np.random.randn(100)

sns.scatterplot(x=x, y=y)

sns.show()

```

除了类似于Matplotlib的绘图函数外,Seaborn还有一些特有的函数,如pairplot、jointplot、heatmap等。这些函数可用于创建特定类型的图表。

```

import seaborn as sns

import numpy as np

# 创建一个pairplot

tips = sns.load_dataset('tips')

sns.pairplot(tips)

sns.show()

# 创建一个jointplot

x = np.random.randn(100)

y = np.random.randn(100)

sns.jointplot(x=x, y=y)

sns.show()

# 创建一个heatmap

flights = sns.load_dataset("flights")

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

sns.heatmap(data)

sns.show()

```

3. Seaborn的高级用法

Seaborn提供了许多高级用法,如多面板图、数据子集、数据处理、颜色调色板等。以下是Seaborn的高级用法:

```

import seaborn as sns

import numpy as np

# 创建一个多面板图

iris = sns.load_dataset('iris')

sns.violinplot(x='species', y='sepal_length', data=iris)

sns.swarmplot(x='species', y='sepal_length', data=iris, color='w')

sns.show()

# 创建一个数据子集

tips = sns.load_dataset('tips')

subset = tips[tips['sex'] == 'Female']

sns.barplot(x='day', y='total_bill', data=subset)

sns.show()

# 创建一个颜色调色板

sns.palplot(sns.color_palette('husl', 10))

sns.show()

```

三、Plotly的使用

1. Plotly的简介

Plotly是一个交互式的数据可视化库,支持在Web浏览器上构建和分享动态和交互式图表。Plotly提供了大量不同的图表和可视化,包括散点图、直方图、热力图、等高线图、地图等。

2. Plotly的基本用法

Plotly的用法与Matplotlib和Seaborn类似,但需要额外的配置来生成交互式图表。以下是Plotly的基本用法:

```

import plotly.express as px

import numpy as np

# 创建一个散点图

x = np.random.randn(100)

y = np.random.randn(100)

fig = px.scatter(x=x, y=y)

fig.show()

# 创建一个直方图

x = np.random.randn(1000)

fig = px.histogram(x=x, nbins=20)

fig.show()

```

除了类似于Matplotlib和Seaborn的绘图函数外,Plotly还提供了专用于地图可视化的函数,如scatter_mapbox、choropleth_mapbox等。

```

import plotly.express as px

import pandas as pd

# 创建一个散点地图

data = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/2014_usa_states.csv')

fig = px.scatter_mapbox(data, lat="lat", lon="lon", hover_name="name", hover_data=["pop", "density"], color="pop",

zoom=3, center={"lat": 37.0902, "lon": -95.7129}, opacity=0.5)

fig.show()

# 创建一个州地图

data = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/2011_us_ag_exports.csv')

fig = px.choropleth_mapbox(data, geojson=counties, locations='code', color='total exports', hover_name='state',

color_continuous_scale="Viridis", range_color=(0, 10000), zoom=3, center={"lat": 37.0902, "lon": -95.7129},

opacity=0.5)

fig.show()

```

3. Plotly的高级用法

Plotly还提供了许多高级用法,如子图、多维数据可视化、3D数据可视化等。以下是Plotly的高级用法:

```

import plotly.graph_objs as go

import pandas as pd

import numpy as np

# 创建一个包含子图的图表

df = pd.DataFrame(np.random.randn(1000, 4), columns=list('ABCD'))

fig = go.Figure()

fig.add_trace(go.Scatter(y=df['A'], name='A'))

fig.add_trace(go.Scatter(y=df['B'], name='B'))

fig.add_trace(go.Scatter(y=df['C'], name='C'))

fig.add_trace(go.Scatter(y=df['D'], name='D'))

fig.update_layout(height=500, width=500, title_text="Subplots")

fig.show()

# 创建一个3D图表

from plotly.subplots import make_subplots

fig = make_subplots(rows=1, cols=1, specs=[[{'type': 'surface'}]])

x, y, z = np.random.rand(3, 100)

fig.add_surface(x=x, y=y, z=z)

fig.show()

# 创建一个平行坐标图

data = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/iris.csv')

fig = px.parallel_coordinates(data, color="species_id", dimensions=['sepal_width', 'sepal_length', 'petal_width', 'petal_length'])

fig.show()

```

总结:

本文介绍了三种Python库用于绘制图表,分别为Matplotlib、Seaborn和Plotly。这三个库都提供了丰富的功能和用法,可用于创建各种类型的图表。Matplotlib提供了最基本的绘图功能,Seaborn提供了更多的数据可视化和统计学支持,而Plotly则提供了动态和交互式图表。开发人员可根据具体需求选择合适的库来创建图表。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/

点赞(70) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部