数据可视化库-Matplotlib

Matplotlib 是Python中广泛使用的2D绘图库,能创建高质量的图表。内容涵盖折线图、子图配置以及柱状图和散点图的绘制,适用于数据可视化需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Matplotlib (数据可视化库)

Matplotlib:是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形

1.折线图

#matplotlib画图
#plot():画图
#show():显示
import pandas as pd
import matplotlib.pyplot as plt

unrate = pd.read_csv("unrate.csv")
first_twelve = unrate[0:12]
plt.plot(first_twelve["DATE"], first_twelve["VALUE"])
#横坐标倾斜
plt.xticks(rotation=45)
#添加x坐标名称
plt.xlabel("Month")
#添加y坐标名称
plt.ylabel("Unemployment Rate")
#添加标题
plt.title("Monthly Unemployment Trends, 1948")
plt.show()

2.子图操作

#2.1 在4*3的范围内显示出图1,图2,图6
#figure()指定画图的区间

fig = plt.figure()
ax1 = fig.add_subplot(4,3,1)
ax2 = fig.add_subplot(4,3,2)
ax3 = fig.add_subplot(4,3,5)
plt.show()
#2.2 figsize() 指定图形的大小

fig = plt.figure(figsize=(6,3))
ax1 = fig.add_subplot(2,1,1)
ax2 = fig.add_subplot(2,1,2)
ax1.plot(np.random.randint(1,5,5),np.arange(5))
ax2.plot(np.arange(10)*3,np.arange(10))
plt.show()
#2.3 画两条折线

unrate["MONTH"] = unrate["DATE"].dt.month 
unrate["MONTH"] = unrate["DATE"].dt.month 
fig = plt.figure(figsize=(6,3))

plt.plot(unrate[0:12]["MONTH"],unrate[0:12]["VALUE"],c="red")
plt.plot(unrate[0:12]["MONTH"],unrate[12:24]["VALUE"],c="blue")
#2.4 完整折线图
unrate["MONTH"] = unrate["DATE"].dt.month
fig = plt.figure(figsize=(10,6))
colors = ["red","blue","green","orange","black"]
for i in range(5):
    start_index = i*12
    end_index = (i+1)*12
    subset = unrate[start_index:end_index]
    label = str(1948+i)
    plt.plot(subset["MONTH"],subset["VALUE"],c=colors[i],label=label)
plt.legend(loc="best")
plt.xlabel("Month,Integer")
plt.ylabel("Unemployment Rate, Percent")
plt.title("Monthly Unemployment Trends, 1948-1952")
plt.show()

3.柱状图与散点图

#3.1 柱状图
num_cols = ["RT_user_norm","Metacritic_user_nom","IMDB_norm","Fandango_Ratingvalue","Fandango_Stars"]

# 纵坐标值
bar_heights = norm_reviews.ix[0,num_cols].values
# print(bar_heights)
#每个柱离原点距离
bar_positions = arange(5) + 0.75
# print(bar_positions)
fig, ax = plt.subplots()
#.bar代表柱状图
ax.bar(bar_positions, bar_heights, 0.5)
plt.show()
#3.2 柱状图

import matplotlib.pyplot as plt
from numpy import arange

reviews = pd.read_csv("fandango_score_comparison.csv")
cols = ["FILM","RT_user_norm","Metacritic_user_nom","IMDB_norm","Fandango_Ratingvalue","Fandango_Stars"]
norm_reviews = reviews[cols]

num_cols = ["RT_user_norm","Metacritic_user_nom","IMDB_norm","Fandango_Ratingvalue","Fandango_Stars"]

bar_widths = norm_reviews.ix[0,num_cols].values
bar_positions = arange(5) + 0.75
tick_positions = range(1,6)
fig, ax = plt.subplots()
#barh横向柱状图
ax.barh(bar_positions, bar_widths, 0.5)

ax.set_yticks(tick_positions)
ax.set_yticklabels(num_cols)
ax.set_ylabel("Rating Source")
ax.set_xlabel("Average Rating")
ax.set_title("Average User Rating For Averagers: Age of Ultron (2015)")
plt.show()
#3.3 散点图
#Fandango_Ratingvalue和RT_user_norm对
reviews = pd.read_csv("fandango_score_comparison.csv")
cols = ["FILM","RT_user_norm","Metacritic_user_nom","IMDB_norm","Fandango_Ratingvalue","Fandango_Stars"]
norm_reviews = reviews[cols]
fig, ax = plt.subplots()
#scatter 画散点图
ax.scatter(norm_reviews["Fandango_Ratingvalue"],norm_reviews["RT_user_norm"])
ax.set_ylabel("Rotten Tomatoes")
ax.set_xlabel("Fandango")
plt.show()
#3.4 柱状图
reviews = pd.read_csv("fandango_score_comparison.csv")
cols = ["FILM","RT_user_norm","Metacritic_user_nom","IMDB_norm","Fandango_Ratingvalue","Fandango_Stars"]
norm_reviews = reviews[cols]
print(norm_reviews[:5])
fandango_distribution = norm_reviews["Fandango_Ratingvalue"].value_counts()
fandango_distribution = fandango_distribution.sort_index()

imdb_distribution = norm_reviews["IMDB_norm"].value_counts()
imdb_distribution = imdb_distribution.sort_index()

print(fandango_distribution)
print("-------------------------")
print(imdb_distribution)

fig, ax = plt.subplots()
# ax.hist(norm_reviews["Fandango_Ratingvalue"])
#bins:生成多少个柱
# ax.hist(norm_reviews["Fandango_Ratingvalue"],bins = 20)
# range:显示4到5区间范围
ax.hist(norm_reviews["Fandango_Ratingvalue"],range=(4,5),bins = 20)
plt.show()
#3.5 盒图
fig, ax = plt.subplots()
ax.boxplot(norm_reviews["RT_user_norm"])
ax.set_xticklabels(["Rotten Tomatoes"])
#set_ylim:设置y轴区间
ax.set_ylim(0,5)
plt.show()
#3.6 盒图
num_cols = ["RT_user_norm","Metacritic_user_nom","IMDB_norm","Fandango_Ratingvalue","Fandango_Stars"]
fig, ax = plt.subplots()
ax.boxplot(norm_reviews[num_cols].values)
ax.set_xticklabels(num_cols,rotation=90)
ax.set_ylim(0,5)
plt.show()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值