使用的是jupyter notebook 用Matplotlib绘制的条形统计图,
怎么让这些字不重叠,因为是直接用
x=data_sort['name']
y=data_sort['nprg'] 导进去的文字,所以我也不知道怎么调文字大小,用不了fontsize
挤在一起好难认出来,尝试过好多种方法都没用。
关于#jupyter#的问题,如何解决?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 沐沐不是沫 2022-05-29 09:15关注
谢邀!
对于坐标轴上的刻度重叠问题其实除了调整刻度大小来解决以外,还可以通过调节刻度的角度或者调整画板的大小来解决(代码我会放下面的)
如有帮助,请采纳!我使用的测试代码如下:
import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False #用来正常显示负号 %matplotlib inline y_3=[11,17,16,11,12,11,12,6,6] y_10=[26,26,28,19,21,17,16,19,18] x_3=range(1,10) x_10=range(15,24) plt.figure() plt.scatter(x_3,y_3) plt.scatter(x_10,y_10) _x=list(x_3)+list(x_10) _xtick_labels=['3月{}日'.format(i) for i in x_3] _xtick_labels+=['10月{}日'.format(i-14) for i in x_10] plt.xticks(_x,_xtick_labels) plt.show()
测试代码结果如下:
- 调整刻度大小:
可以使用 plt.tick_params(labelsize=4) 来设置刻度的大小,代码如下:
import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False #用来正常显示负号 %matplotlib inline y_3=[11,17,16,11,12,11,12,6,6] y_10=[26,26,28,19,21,17,16,19,18] x_3=range(1,10) x_10=range(15,24) plt.figure() plt.scatter(x_3,y_3) plt.scatter(x_10,y_10) _x=list(x_3)+list(x_10) _xtick_labels=['3月{}日'.format(i) for i in x_3] _xtick_labels+=['10月{}日'.format(i-14) for i in x_10] plt.xticks(_x,_xtick_labels) # TODO 设置刻度大小 plt.tick_params(labelsize=4) plt.show()
调节刻度大小结果如下:
结果其实并不好,下面来尝试其他方法- 调整刻度的角度
在函数 plt.xticks(_x,_xtick_labels,rotation=90) 中设置刻度和角度
import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False #用来正常显示负号 %matplotlib inline y_3=[11,17,16,11,12,11,12,6,6] y_10=[26,26,28,19,21,17,16,19,18] x_3=range(1,10) x_10=range(15,24) plt.figure() plt.scatter(x_3,y_3) plt.scatter(x_10,y_10) _x=list(x_3)+list(x_10) _xtick_labels=['3月{}日'.format(i) for i in x_3] _xtick_labels+=['10月{}日'.format(i-14) for i in x_10] # TODO设置x轴刻度和角度 plt.xticks(_x,_xtick_labels,rotation=90) plt.show()
结果如下:
- 调整画板大小
plt.figure(figsize=(20,4)) 设置画板的大小
import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False #用来正常显示负号 %matplotlib inline y_3=[11,17,16,11,12,11,12,6,6] y_10=[26,26,28,19,21,17,16,19,18] x_3=range(1,10) x_10=range(15,24) # TODO 调整画板大小 plt.figure(figsize=(20,4)) plt.scatter(x_3,y_3) plt.scatter(x_10,y_10) _x=list(x_3)+list(x_10) _xtick_labels=['3月{}日'.format(i) for i in x_3] _xtick_labels+=['10月{}日'.format(i-14) for i in x_10] plt.xticks(_x,_xtick_labels) plt.show()
结果如下:
结合使用:
import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False #用来正常显示负号 %matplotlib inline y_3=[11,17,16,11,12,11,12,6,6] y_10=[26,26,28,19,21,17,16,19,18] x_3=range(1,10) x_10=range(15,24) # TODO plt.figure(figsize=(10,8)) plt.scatter(x_3,y_3) plt.scatter(x_10,y_10) _x=list(x_3)+list(x_10) _xtick_labels=['3月{}日'.format(i) for i in x_3] _xtick_labels+=['10月{}日'.format(i-14) for i in x_10] # TODO plt.xticks(_x,_xtick_labels,rotation=90) # TODO plt.tick_params(labelsize=24) plt.show()
结果如下:
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用 - 调整刻度大小:
悬赏问题
- ¥15 做个有关计算的小程序
- ¥15 MPI读取tif文件无法正常给各进程分配路径
- ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
- ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
- ¥15 setInterval 页面闪烁,怎么解决
- ¥15 如何让企业微信机器人实现消息汇总整合
- ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
- ¥15 如何用Python爬取各高校教师公开的教育和工作经历
- ¥15 TLE9879QXA40 电机驱动
- ¥20 对于工程问题的非线性数学模型进行线性化