绘制折线图
from matplotlib import pyplot as plt
import pandas as pd
import numpy as np
#防止中文图例, 标题, 横坐标,等出现中文乱码的
mpl.rcParams['font.sans-serif'] = ['FangSong']
x = np.arange(0, 1, 0.05)
y = np.sin(2*np.pi*x)
#lable: 设置图例, 必须要添加:plt.legend('best')
plt.plot(x, y, 'b--*', label='sin')
#图名字
plt.title('my plot')
#横坐标
plt.xlabel('x')
#纵坐标
plt.ylabel('y')
plt.legend('best')
plt.show()
结果展示:

设置坐标轴的名字
from matplotlib import pyplot as plt
import random
import matplotlib
x = range(2, 26, 2)
y = [random.randint(15, 30) for i in x]
# 设置图片的大小
plt.figure(figsize=(20, 8), dpi=80)
# 构造x轴刻度标签, x_ticks_lable: 设置横坐标, rolation: 设置刻度显示偏移45°显示
x_ticks_label = ["{}: 00".format(i) for i in x]
plt.xticks(x, x_ticks_label, rotation=45)
y_ticks_label = ["{}°C".format(i) for i in range(min(y), max(y)+1)]
plt.yticks(range(min(y), max(y)+1), y_ticks_label)
# 设置图标中文字符显示
my_font = matplotlib.font_manager.FontProperties(fname='simfang.ttf', size=18)
# 设置x轴坐标名
plt.xlabel('时间', rotation=45, fontproperties=my_font)
# 设置y轴坐标名
plt.ylabel('度', fontproperties=my_font)
# 设置title
plt.title('温度', fontproperties=my_font)
plt.plot(x, y)
plt.show()
结果显示:

绘制一张图中多个子图
x = np.arange(0, 1, 0.05)
y = np.sin(2*np.pi*x)
y2 = np.cos(2*np.pi*x)
fig, ax = plt.subplots(2, 2)
#ax[0,0]: 第一行第一个图片绘制
ax[0, 0].plot(x, y)
ax[0, 1].plot(x, y2 )
plt.show()
结果展示:

一张图绘制多条
x = np.arange(0, 1, 0.05)
y = np.sin(2*np.pi*x)
y2 = np.cos(2*np.pi*x)
fig, ax = plt.subplots()
ax.plot(x, y2)
ax.plot(x, y)
plt.show()
结果展示:
## 读取csv文件并绘制图
#读取某一列数据: df[列名]
df = pd.read_csv('data.csv', index_col='年份')
x = df.index.values
y = df['啤酒产量(万千升)'].values
#设置间距: explode = [0, 0.05, 0.1 ....]
plt.plot(x, y, 'b--*')
plt.show()
结果展示:
## 绘制圆形图: plt.pie()
设置间距: explode = [0, 0.05, 0.1 ....]
df = pd.read_csv('data.csv', index_col='年份')
x = df.index.values
y = df['啤酒产量(万千升)'].values
#设置间距: explode = [0, 0.05, 0.1 ....]
plt.pie(x, labels=x)
plt.show()
结果展示:

绘制柱形图: plt.bar()
df = pd.read_csv('data.csv', index_col='年份')
x = df.index.values
y = df['啤酒产量(万千升)'].values
plt.bar(x, y)
plt.show()
结果展示:

绘制横向的柱形图
my_font = matplotlib.font_manager.FontProperties(fname='simfang.ttf', size=18)
a = ['流浪地球', '疯狂外星人', '飞驰人生', '大黄蜂', '熊出没', '喜剧之王']
b = [38.13, 85.14, 89, 11.36, 6.47, 5.93]
rects = plt.barh(range(len(a)), b, height=0.5, color='blue')
plt.yticks(range(len(a)), a, ntproperties=my_font, rotation=45)
plt.show()
结果如图:

绘制散点图: scatter
from pylab import mpl
#防止中文图例, 标题, 横坐标,等出现中文乱码的
data = np.random.randint(0, 100, size=[40, 40])
x, y = data[0], data[1]
ax = plt.subplot(111)
ax.scatter(x, y, c='b')
ax.scatter(x[10:20], y[10:20], c='r')
plt.show()
结果展示:

绘制三维散点图
data = np.random.randint(0, 100, size=[40, 40])
from mpl_toolkits.mplot3d import Axes3D
x, y, z = data[0], data[1], data[2]
ax = plt.subplot(111, projection='3d')
ax.scatter(x, y, z)
plt.show()
结果展示:

绘制词云图
with open('classify_model1.csv', encoding='utf-8') as f:
data = f.read()
from wordcloud import WordCloud
word = WordCloud(font_path='C:/Windows/Fonts/simfang.ttf').generate(data)
image = word.to_image()
image.show()
结果展示:

本文详细介绍了如何使用Python的matplotlib库进行各种图形绘制,包括折线图、设置坐标轴名称、多子图绘制、多条曲线绘制、柱形图、横向柱形图、散点图、三维散点图以及词云图的绘制,通过实例展示了每种图形的生成过程和结果。

1268

被折叠的 条评论
为什么被折叠?



