matplotlib 多子图的画法 - 设置坐标范围 - 设置坐标的显示间隔 - 设置figure的大标题 - 设置x轴和y轴的名称 - df.groupby

前言

本文实现的功能:

  • 多子图的画法
  • 设置坐标范围
  • 设置坐标的显示间隔
  • 设置figure的大标题
  • 设置x轴和y轴的名称

👉Drugs.csv 数据地址🔗


▲ 数据样式


from matplotlib.pyplot import MultipleLocator
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

data = pd.read_csv('Drugs.csv')
df = pd.DataFrame(data)
# 以'YYYY'和'State'对'DrugReports'进行统计
reports = df.groupby(['YYYY', 'State'])['DrugReports'].sum().unstack('State') # 以‘State’列为目标消除堆叠

max_y = reports.max().max()  #子图中纵坐标最大值
min_y = reports.min().min()  #子图中纵坐标最小值
max_x = reports.idxmax().max()#子图中横坐标最大值
min_x = reports.idxmin().min()#子图中横坐标最小值

# 获取'State'的值['KY', 'OH', 'PA', 'VA', 'WV']
value_State = reports.columns

# 画图
# 标题颜色样式
colors = plt.get_cmap('tab10') 

plt.figure(figsize=(20,10))

x_major_location = MultipleLocator(100)  #将横坐标宽度设为10
y_major_location = MultipleLocator(1000)  #将纵坐标宽度设为10

for i, value in enumerate(value_State):
    x = reports.index
    y = reports[value]
    
    plt.subplot(2,3,i+1) # 记得是i+1,因为子图的下标是从1开始的。
    plt.plot(x,y,color=colors(i))
    plt.fill_between(x,y,facecolor='skyblue',alpha=0.4)
    plt.title(value,loc='right',color=colors(i))
    
    # 修改每个子图的刻度宽度
    axis = plt.gca() # 获取当前axis
    ax.xaxis.set_major_locator(x_major_location)
    ax.yaxis.set_major_locator(y_major_location )
    
    # 设置每个子图的刻度总范围
    plt.xlim(min_x,max_x)
    plt.ylim(min_y,max_y)
    
    plt.grid() 

# 给figure加横纵轴的名称,范围在[0,1]之间
plt.figtext(0.5, 0.05, 'Year', fontsize=15)
plt.figtext(0.05, 0.5, 'DrugReports', va='center', rotation='vertical',fontsize=15)

# figure的标题
plt.suptitle('DrugReport of each state every year', fontsize=20)

plt.show()

在这里插入图片描述

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 在 Matplotlib 中,可以使用 `pyplot.xlim()` 和 `pyplot.ylim()` 函数来设置 x 和 y 范围。例如,下面的代码将 x 范围设置为 0 到 10,y 范围设置为 -1 到 1: ``` import matplotlib.pyplot as plt plt.xlim(0, 10) plt.ylim(-1, 1) ``` 如果要设置坐标刻度的大小,可以使用 `pyplot.xticks()` 和 `pyplot.yticks()` 函数。这些函数可以接受一个可选的第二个参数,该参数为标签列表。例如,下面的代码将 x 的刻度设置为 0,2,4,6,8,10,并将 y 的刻度设置为 -1,-0.5,0,0.5,1。 ``` plt.xticks([0, 2, 4, 6, 8, 10]) plt.yticks([-1, -0.5, 0, 0.5, 1]) ``` 如果你要设置坐标刻度的大小,可以使用 `pyplot.xticks()` 和 `pyplot.yticks()` 函数。这些函数可以接受一个可选的第二个参数,该参数为标签列表。例如,下面的代码将 x 的刻度设置为 0,2,4,6,8,10,并将 y 的刻度设置为 -1,-0.5,0,0.5,1。 ``` plt.xticks([0, 2, 4, 6, 8, 10],['0','2','4','6','8','10']) plt.yticks([-1, -0.5, 0, 0.5, 1],['-1','-0.5','0','0.5','1']) ``` 注 ### 回答2: Matplotlib库提供了多种方法来设置xy轴坐标的大小。 1. 使用plt.xticks()和plt.yticks()函数来设置坐标刻度的大小。可以通过设置fontsize参数来指定刻度的字体大小,例如: plt.xticks(fontsize=12) plt.yticks(fontsize=12) 2. 使用ax.xaxis.set_tick_params()和ax.yaxis.set_tick_params()方法来设置刻度的大小。可以通过设置labelsize参数来指定刻度的字体大小,例如: ax = plt.gca() ax.xaxis.set_tick_params(labelsize=12) ax.yaxis.set_tick_params(labelsize=12) 3. 使用plt.rc()函数来设置全局坐标的刻度大小。可以通过设置xtick.labelsize和ytick.labelsize参数来指定刻度的字体大小,例如: plt.rc('xtick', labelsize=12) plt.rc('ytick', labelsize=12) 4. 使用plt.xlabel()和plt.ylabel()函数来设置坐标的标签。可以通过设置fontsize参数来指定标签的字体大小,例如: plt.xlabel("X", fontsize=12) plt.ylabel("Y轴", fontsize=12) 以上是一些设置xy轴坐标大小的常见方法,您可以根据具体需求选择合适的方法来进行设置。 ### 回答3: 在Matplotlib库中,可以通过使用`plt.xticks()`和`plt.yticks()`函数来设置xy轴坐标大小。 首先,可以使用`plt.xticks()`函数来设置x坐标。该函数接受一个参数,即一个要显示坐标位置的列表。可以使用`fontsize`参数来设置坐标标签的大小。例如,`plt.xticks([1, 2, 3, 4], fontsize=12)`将x坐标位置设置为1、2、3和4,并将标签的大小设置为12。 类似地,可以使用`plt.yticks()`函数来设置y轴坐标。该函数也接受一个参数,即一个要显示坐标位置的列表。同样可以使用`fontsize`参数来设置坐标标签的大小。例如,`plt.yticks([10, 20, 30, 40], fontsize=12)`将y轴坐标位置设置为10、20、30和40,并将标签的大小设置为12。 除了直接指定坐标位置,还可以通过`np.arange()`函数来生成一个坐标位置的范围。例如,`plt.xticks(np.arange(0, 10, 2), fontsize=12)`将x坐标位置设置为0、2、4、6、8,并将标签的大小设置为12。 另外,还可以使用`plt.tick_params()`函数来设置所有坐标上的刻度线的属性。例如,`plt.tick_params(axis='both', which='major', labelsize=12)`将所有坐标上的主刻度线的标签大小设置为12。 总结起来,Matplotlib库提供了多种方法来设置xy轴坐标的大小,如`plt.xticks()`、`plt.yticks()`和`plt.tick_params()`函数,以及`fontsize`参数。这些方法可以根据具体需求来选择和使用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

猫咪钓鱼

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

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

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

打赏作者

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

抵扣说明:

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

余额充值