我有一个问题:如何在matplotlib上使用默认样式(因为我喜欢它)但只更改一个参数?这是一个例子: 使用默认的matplotlib样式或" calssic"我可以通过更新rcParams来全局更改字体大小:
import matplotlib.pyplot as plt
plt.style.use('seaborn')
plt.rcParams.update({'font.size': 18.0})
x = [0, 1, 2, 3]
y = [0, 1, 4, 9]
fig, ax0 = plt.subplots()
ax0.plot(x, y)
ax0.set_xlabel('data x')
ax0.set_ylabel('data y')
plt.show()
如果相反,我会在开头选择不同的默认样式:
plt.rcParams.update({'font.size': 18.0})
the font size remains of the default value 它并没有像那样工作;
font.size
就像library(tidyverse)
library(rvest)
data_dir <- "bat_data-html/"
# Step 1: Create list of links to listings ----------------------------
base_url <- "https://"
pages <- read_html(file.path(base_url,"/auctions/")) %>%
html_nodes(".auctions-item-title a") %>%
html_attr("href") %>%
file.path
pages <- head(pages, 3) # use a subset for testing code
# Step 2 : Save auction pages locally ---------------------------------
dir.create(data_dir, showWarnings = FALSE)
p <- progress_estimated(length(pages))
# Download each auction page
walk(pages, function(url){
download.file(url, destfile = file.path(data_dir, basename(url)), quiet = TRUE)
p$tick()$print()
})
行不存在一样。
现在一个简单的解决方案是定义一个具有特定字体大小的全局变量,并手动将其添加到绘图的每个元素,但它对我来说听起来并不聪明。如何全局修改fontsize的任何其他想法?它实际上是可能的还是我只需要处理它并自己创建一个matplotlib样式文件?
编辑: 通过更仔细的思考,遵循DavidG评论,我尝试了不同的风格:ggplot和fivethirtyeight甚至是seaborn-dark,我的代码工作(正如我所料)。这个问题只与seaborn风格有关(我不幸选择)..
答案 0 :(得分:0)
刻度标签的大小由xtick.labelsize
和ytick.labelsize
rcParams决定。
如果您打印出来,则会看到10
(pt)设置为seaborn
样式。因此,如果您将其更改为18
,则会到达所需的地块。
import matplotlib.pyplot as plt
plt.style.use('seaborn')
plt.rcParams.update({'font.size': 18,
'xtick.labelsize' : 18,
'ytick.labelsize' : 18})
# ....
如您所见,轴标签仍然很小。那是因为我们还没有设置axes.labelsize
参数。
那么为什么seaborn-dark
只能按预期工作,只需设置'font.size'
?
答案是有两种方法可以指定字体大小。一个是像上面这样的点的绝对数字,另一个是使用相对值。那些是xx-small, x-small, small, medium, large, x-large, xx-large, larger, or smaller
。这些值与font.size
中指定的大小有关。
如果是seaborn-dark
样式和(希望有很多其他样式),labelsize
是使用其中一个相对值设置的。在这种情况下,它是medium
,这意味着正在使用font.size
。
您可以检查matplotlib\lib\matplotlib\mpl-data\stylelib
文件夹中的样式,直接查看它们如何指定相应参数并找出它们之间的差异。