会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 134093个问题

问题:

①在客户端输入数据提交之后,不会有数据显示在span标签里

②在客户端输入的userid是1  服务器端显示出来的是0


jsonDataDemo.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>$.ajax()中提交json格式数据</title>
    <script src="js/jquery.js"></script>
    <script>
        function but(){
            var userid = $("#userid").val();
            var username = $("#username").val();
            $.ajax({
                type:"post",
                url:"jsonData.do",
                data:JSON.stringify({
                    userid:userid,
                    username:username
                }),
                success:function (result){
                    $("#span").html(result);
                }
            })
        }
    </script>

</head>
<body>
    用户ID:<input type="text" id="userid"/><br/>
    用户名:<input type="text" id="username"/><br/>
    <span id="span"></span>
    <input type="button" value="OK" onclick="but()"/>
</body>
</html>



JsonDataServlt

/**
 * $.ajax()提交json格式数据
 */
@WebServlet(urlPatterns = "/jsonData.do")
public class JsonDataServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");

        //通过字符输入流从请求体中获取提交的JSON格式的字符串
        String string = req.getReader().readLine();
        //使用jackson将json格式字符串转为Java对象
        ObjectMapper objectMapper = new ObjectMapper();
        Users users = objectMapper.readValue(string, Users.class);
        System.out.println(users.getUserid()+" "+users.getUsername());

        resp.setContentType("application/json;charset=utf-8");
        PrintWriter pw = resp.getWriter();
        pw.print(string);
        pw.flush();
        pw.close();
    }
}




image.png



image.png

JAVA 全系列/第六阶段:JavaWeb开发/Ajax技术详解(旧) 1727楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/JAVA入门和背景知识 1728楼
Python全系列/第二阶段:Python 深入与提高/(旧)坦克大战 1729楼
Python全系列/第一阶段:AI驱动的Python编程/函数和内存分析 1730楼
Python全系列/第二十三阶段:人工智能基础_机器学习理论和实战(旧)/GBDT算法 1731楼
WEB前端全系列/第一阶段:HTML5+CSS3模块/前端入门与基础知识 1732楼
JAVA 全系列/第十八阶段:亿级高并发电商项目_架构/编码(旧)/电商:完成CMS系统 1734楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/JAVA入门和背景知识 1736楼
微服务/第六阶段:分布式RPC调用和分布式文件存储/(旧)Dubbo 1739楼

代码:

from matplotlib import pyplot as plt
fig,axs=plt.subplots(2,2,figsize=(7,7))
people=[45, 48, 37, 47, 38, 41, 39, 37, 44, 44, 37, 35, 38, 46, 33, 35, 37, 36, 34, 38, 33, 33, 40, 37, 38]
bin_width=2
bin_count=int(max(people)-min(people)/bin_width)
x_ticks=range(31,52)
axs[0,0].xaxis.set_ticks(x_ticks)
axs[0,0].hist(people,bin_count)
real_names=["detection","allen","home"]
real_num1=[8414,4024,2088]
real_num2=[11526,5605,2490]
real_num3=[7675,2863,1311]
x_pos1=range (3)
x_pos2=[i+0.3 for i in x_pos1]
x_pos3=[i+2*0.3 for i in x_pos1]
axs[1,0].xaxis.set_ticks(x_pos2)
# axs[1,0].set_xticks(x_pos2)
# axs[1,0].set_xticklabels(x_pos2,real_names)
# plt.xticks(x_pos1,real_names)
# plt.xticks(x_pos2,real_names)
# plt.xticks(x_pos3,real_names)
# plt.xticks(x_pos2,real_names)
axs[1,0].bar(x_pos1,real_num1,width=0.3,label="dection")
axs[1,0].bar(x_pos2,real_num2,width=0.3,label="allen")
axs[1,0].bar(x_pos3,real_num3,width=0.3,label="home")
axs[1,0].legend(loc="upper right")
x=range(1,13)
x_ticks=range(1,13)
b=[]
for i in x:
    y=2*i+1
    b.append(y)
axs[1,1].xaxis.set_ticks(x)
axs[1,1].scatter(x,b)
# plt.show()
plt.show()
# plt.show()

屏幕截图 2021-04-06 123941.png

运行结果:

屏幕截图 2021-04-06 124029.png

老师请问一下,在绘制子图的时候怎么样对柱图的横坐标进行修改,把横坐标修改成real_names列表中的内容,就像

plt.xticks(x_pos2,real_names)

一样,我网上查了一下说可以使用

axs[1,0].xaxis.set_ticks(x_pos2)

但是这种方法只可以修改x轴的间距,没办法指定每个间隔显示的文本,请问老师这该如何解决?

Python全系列/第十九阶段:数据分析-数据可视化/matplotlib 1740楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637