Python数据分析 可视化数据图表 入门这篇就够了

本文详细介绍了如何在Python中使用Matplotlib进行基本绘图,包括安装、plot函数的使用、不同类型图例的创建、数据处理、颜色和样式设置,以及解决常见问题如中文乱码和负号显示。此外,还涉及了刻度调整、网格线、文本标注和调整图表布局等高级特性。
摘要由CSDN通过智能技术生成

一.Matplotlib

1.1 安装matplotlib

pip install matplotlib

1.2 matplotlib使用

matplotlib绘图主要使用plot函数

语法:

matplotlib.pyplot.plot(x,y,format_string,**kwargs)

x: x轴数据

y: y轴数据

format_string: 曲线格式和样式

**kwagrs: 键值参数

(1)入门示例:

# 导入matplotlib.pyplot模块,并用别名plt来引用它  
import matplotlib.pyplot as plt  
  
# 定义x和y的数据列表  
x = [1, 2, 3, 4, 5]  
y = [2, 3, 5, 7, 11]  
  
# 使用plot函数绘制x和y的图形  
plt.plot(x, y)  
  
# 设置x轴的标签为'X-axis'  
plt.xlabel('X-axis')  
  
# 设置y轴的标签为'Y-axis'  
plt.ylabel('Y-axis')  
  
# 设置图形的标题为'My Line Plot'  
plt.title('My Line Plot')  
  
# 显示图形  
plt.show()

运行结果:

(2)散点图示例:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

plt.plot(x, y,'ro')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('My Line Plot')
plt.show()

 运行结果:

(3)使用range函数

import matplotlib.pyplot as plt
x = range(1, 10, 2)
y = range(1, 30, 6)
plt.plot(x,y)
plt.show()

运行结果:

 (4)描绘Excel表图

data.xlsx中的数据:

示例代码:

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_excel('Excel/data.xlsx',sheet_name="商品订单")

x = df['订单号']
y = df['数量']

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

运行结果:

 (5)绘图颜色设置

color参数:


设置值颜色
b蓝色
g绿色
r红色
c蓝绿色
y黄色
m洋红色
w白色
k黑色
#FFFFF00十六进制颜色
0.5灰度值字符串

 (6)线条样式

linestyle参数:


设置值样式
-实线(默认值)
--双划线
-.点划线
:虚线

(7)标记样式

 marker:


设置值说明
.
,像素
o实心
v倒三角
^上三角
<左三角
>右三角
1下花三角
2上花三角
3左花三角
4右花三角
s实心正方形
p实心五角星
*星形
h竖六边形
H横六边形
+加号
X叉号
d小菱形
D大菱形
l垂直线

(8)解决中文乱码的问题

plt.rcParams['font.sans-serif']=['SimHei']

 (9)解决负号不显示的问题

plt.rcParams['axes.unicode_minus']=False

 (10)折线图设置刻度

设置x轴的刻度使用xticks()函数设置

设置y轴的刻度使用yticks()函数设置

示例:

import matplotlib.pyplot as plt

# 假设我们有一些数据
x = [1, 2, 3, 4, 5]
y = [10, 20, 15, 30, 25]

plt.plot(x, y)  # 画图

# 设置x轴的刻度
plt.xticks([1, 2, 3, 4, 5], ['Jan', 'Feb', 'Mar', 'Apr', 'May'])  # 这将把x轴的刻度设置为对应的月份

# 设置y轴的刻度
plt.yticks([10, 20, 30], ['Low', 'Medium', 'High'])  # 这将把y轴的刻度设置为对应的等级

plt.show()  # 显示图像

运行结果:

 

(11)设置坐标轴范围

设置x轴的坐标轴范围使用xlim()函数设置

设置y轴的坐标轴范围使用ylim()函数设置

示例:

import matplotlib.pyplot as plt

# 假设我们有一些数据
x = [1, 2, 3, 4, 5]
y = [10, 20, 15, 30, 25]

plt.plot(x, y)  # 画图

# 设置x轴的范围
plt.xlim([0, 6])  # 这将把x轴的范围设置为从0到6

# 设置y轴的范围
plt.ylim([0, 35])  # 这将把y轴的范围设置为从0到35

plt.show()  # 显示图像

 

运行结果:

(12)网格线

使用grid()函数

示例:

import matplotlib.pyplot as plt

# 假设我们有一些数据
x = [1, 2, 3, 4, 5]
y = [10, 20, 15, 30, 25]

plt.plot(x, y)  # 画图

# 添加网格线
plt.grid(True)

plt.show()  # 显示图像

运行结果:

(13)添加文本标签

使用text()函数

示例:

import matplotlib.pyplot as plt  
  
# 假设我们有一些数据  
x = [1, 2, 3, 4, 5]  
y = [10, 20, 15, 30, 25]  
  
plt.plot(x, y)  # 画图  
  
# 在多个位置一次性添加文本标签  
plt.text(1.5, 12, 'Label 1', fontsize=12)  
plt.text(3.5, 20, 'Label 2', fontsize=12)  
plt.text(4.5, 18, 'Label 3', fontsize=12)  
  
plt.show()  # 显示图像

运行结果:

 (14)设置标题

使用title()函数

示例:

import matplotlib.pyplot as plt  
  
# 假设我们有一些数据  
x = [1, 2, 3, 4, 5]  
y = [10, 20, 15, 30, 25]  
  
plt.plot(x, y)  # 画图  
  
# 添加标题  
plt.title('My Title')  
  
plt.show()  # 显示图像

运行结果:

(15)图表图例

 使用legend()函数

示例:

import matplotlib.pyplot as plt

# 假设我们有一些数据
x = [1, 2, 3, 4, 5]
y1 = [10, 20, 15, 30, 25]
y2 = [12, 22, 17, 32, 27]

# 画两条数据系列
plt.plot(x, y1, label='Series 1')
plt.plot(x, y2, label='Series 2')

# 添加图例
plt.legend()

plt.show()  # 显示图像

运行结果:

(16)添加注释

使用annotate添加注释
 

 示例:

import matplotlib.pyplot as plt

# 假设我们有一些数据
x = [1, 2, 3, 4, 5]
y = [10, 20, 15, 30, 25]

plt.plot(x, y)  # 画图

# 在坐标(3, 20)处添加注释
plt.annotate('Label', xy=(3, 20), xytext=(4, 21), arrowprops=dict(facecolor='black', shrink=0.05))

plt.show()  # 显示图像

 这个例子中:

plt.annotate('Label', xy=(3, 20), xytext=(4, 21), arrowprops=dict(facecolor='black', shrink=0.05))

将在坐标(3, 20)处添加一个指向坐标(4, 21)的注释标签"Label"。arrowprops参数用于自定义箭头的样式,例如颜色和大小。您可以根据需要调整坐标和注释内容。

 

运行结果:

 (17)调整图表与画布边缘间距

使用subplots_adjust函数

示例:

import matplotlib.pyplot as plt
import numpy as np

# 创建数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

# 创建子图
fig, ax1 = plt.subplots()
ax1.plot(x, y1)
ax1.set_xlabel('X Axis 1')
ax1.set_ylabel('Y Axis 1')

ax2 = ax1.twinx()  # 创建第二个Y轴
ax2.plot(x, y2)
ax2.set_ylabel('Y Axis 2')

# 调整子图间距和边距
plt.subplots_adjust(wspace=0.2, hspace=0.2)  # 调整子图之间的水平和垂直间距
plt.subplots_adjust(left=0.1, right=0.9, top=0.9, bottom=0.1)  # 调整子图的边距

plt.show()

运行结果:

(18)坐标轴刻度线

使用tick_params设置刻度线是否显示

示例:

import matplotlib.pyplot as plt  
  
# 假设我们有一些数据  
x = [1, 2, 3, 4, 5]  
y = [10, 20, 15, 30, 25]  
  
plt.plot(x, y)  # 画图  
  
# 设置刻度线显示  
plt.tick_params(axis='both', which='both', labelbottom=True, labeltop=True, labelleft=True, labelright=True)  
  
plt.show()  # 显示图像

运行结果:

 

in表示向内,out表示向外

使用plt.rcParams['xtick.direction'] = 'in'  x轴的刻度线向内显示

使用plt.rcParams['ytick.direction'] = 'in' y轴的刻度线向内显示

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

探索星辰大海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值