Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用千位分隔符和字体大小格式化y轴matplotlib_Python_Matplotlib - Fatal编程技术网

Python 使用千位分隔符和字体大小格式化y轴matplotlib

Python 使用千位分隔符和字体大小格式化y轴matplotlib,python,matplotlib,Python,Matplotlib,下面的代码可以工作 姓名=1960年至2016年 价值=美国每年的GDP 代码生成两个图表,但y轴标签的范围为5000到175000。我想 1) 将标签格式化为“,”表示千位分隔符,例如5000或17500,以及 2) 我想增加标签的字体大小-所以增加字体,例如,5000 在网上找不到可行/可理解的例子。谢谢你的帮助 %matplotlib inline import matplotlib.pyplot as plt plt.style.use('seaborn-white') import n

下面的代码可以工作

姓名=1960年至2016年

价值=美国每年的GDP

代码生成两个图表,但y轴标签的范围为5000到175000。我想 1) 将标签格式化为“,”表示千位分隔符,例如5000或17500,以及

2) 我想增加标签的字体大小-所以增加字体,例如,5000

在网上找不到可行/可理解的例子。谢谢你的帮助

%matplotlib inline
import matplotlib.pyplot as plt
plt.style.use('seaborn-white')
import numpy as np
from numpy import array

# Plot GDP/Year

names =  usa.loc[: , "Year"]
values = usa.loc[: , "GDP Billions"]

plt.figure(1, figsize=(15, 6))
plt.suptitle('GDP Growth', fontsize=20)

plt.subplot(121)
plt.plot(names, values)
plt.xticks(np.arange(0, 57, step=5.0))
plt.ylabel('GDP', fontsize=16)
plt.title('United States',fontsize=16)

plt.subplot(122)
plt.plot(names, values)
plt.xticks(np.arange(0, 57, step=5.0))
plt.xlabel('Year', fontsize=16)
plt.title('United States',fontsize=16)

#plt.ticklabel_format(axis='y', style='sci', scilimits=(0, 4))
#print(plt.xticks())


plt.show()
1) 将标签的格式设置为“,”表示千位分隔符,例如5000或17500,以及(如中所示)

2) 我想增加标签的字体大小-因此增加字体,例如5000:

plt.rc('ytick', labelsize=5000) 
以下是您如何更改代码以合并这些解决方案(如注释中所要求的):

下面是我创建的虚拟数据的图:

添加逗号:增加字体大小:我看到了那个,但不能让它太有效。我确实因为代码plt.yticks(fontsize=12)Thx而混淆了字体大小问题,但没有乐趣。可能是因为我不知道该怎么做。如果我简单地剪切、粘贴并执行,就会得到错误:TypeError:'AxesSubplot'对象不可编辑。语法ax.get。未在我的代码中定义。我不知道怎么把它包括进去。如何从我的代码中访问get_xaxis().set_major_formatter()方法?plt.ticklabel_格式(axis='y',style='sci',scilimits=(0,4))似乎很有希望,但无法找出如何获得数千的逗号分隔符。@user3504322查看我的更新答案。您需要在代码中更改的只是将两个绘图定义为
fig,(ax1,ax2)=plt。子绘图(1,2)
,您将可以访问
get_xaxis()。通过
ax1
ax2
为每个绘图设置主格式化程序()。我无知。检查我重新更新的答案!!我添加了您需要在代码中包含的更改!
plt.rc('ytick', labelsize=5000) 
%matplotlib inline
import matplotlib.pyplot as plt
plt.style.use('seaborn-white')
import numpy as np
from numpy import array

plt.rc('ytick', labelsize=12) 

# Plot GDP/Year
names =  usa.loc[: , "Year"]
values = usa.loc[: , "GDP Billions"]


fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 6))

fig.suptitle('GDP Growth', fontsize=20)

ax1.plot(names, values)
ax1.set_xticklabels(np.arange(0, 57, step=5.0))
ax1.set_ylabel('GDP', fontsize=16)
ax1.set_title('United States',fontsize=16)
ax1.get_yaxis().set_major_formatter(
matplotlib.ticker.FuncFormatter(lambda x, p: format(int(x), ',')))

ax2.plot(names, values)
ax2.set_xticklabels(np.arange(0, 57, step=5.0))
ax2.set_ylabel('Year', fontsize=16)
ax2.set_title('United States',fontsize=16)
ax2.get_yaxis().set_major_formatter(
matplotlib.ticker.FuncFormatter(lambda x, p: format(int(x), ',')))
#plt.ticklabel_format(axis='y', style='sci', scilimits=(0, 4))
#print(plt.xticks())


plt.show()