set_data()

时间:2016-07-21 09:34:35

标签: python matplotlib rotation imshow

我有一个非常奇怪的问题。设置我的imshow instace的数据后,原点从' upper'降低'降低'我没有设法再次扭转它。有什么想法吗?

这是我的代码:

im = ax.imshow(data)
ax.set_xlim(0, new_data.shape[1])
ax.set_ylim(0, new_data.shape[0])
im.set_extent((0, new_data.shape[1], 0, new_data.shape[0]))
im.set_data(new_data)

2 个答案:

答案 0 :(得分:1)

答案 1 有效,但没有 set_extent 的更直接方法是反转 y 轴:

im = ax.imshow(data)
ax.set_xlim(0, new_data.shape[1])
ax.set_ylim(0, new_data.shape[0])
ax.invert_yaxis()
# im.set_extent((0, new_data.shape[1], 0, new_data.shape[0]))
im.set_data(new_data)

或者,将 imshow origin 更改为非默认的 'lower':

im = ax.imshow(data,origin='lower')
ax.set_xlim(0, new_data.shape[1])
ax.set_ylim(0, new_data.shape[0])
# im.set_extent((0, new_data.shape[1], 0, new_data.shape[0]))
im.set_data(new_data)

答案 1 :(得分:0)

我自己解决了。只需交换set_extent()中的值,并省略set_xim和set_ylim:

cmd3.Parameters.Add("@challan_no", SqlDbType.Int);
cmd3.Parameters.Add("@job_name", SqlDbType.NVarChar);
cmd3.Parameters.Add("@paper_stock_name", SqlDbType.NVarChar);
cmd3.Parameters.Add("@size", SqlDbType.NVarChar);
cmd3.Parameters.Add("@quantity", SqlDbType.Int);
cmd3.Parameters.Add("@rate", SqlDbType.Int);
cmd3.Parameters.Add("@amount", SqlDbType.Int);
cmd3.Parameters.Add("@sno", SqlDbType.Int);
cmd3.Parameters.Add("@book_no", SqlDbType.Int);

for (j = 0; j <= i; j++)
{
    object jobName = job_name[j];
    if (jobName == null)
        jobName = DBNull.Value;


    cmd3.Parameters["@challan_no"].Value = Convert.ToInt32(textBox2.Text);
    cmd3.Parameters["@job_name"].Value = jobName;
    cmd3.Parameters["@paper_stock_name"].Value = Convert.ToString(pap_sto_name[j]);
    cmd3.Parameters["@size"].Value = Convert.ToString(size[j]);
    cmd3.Parameters["@quantity"].Value = Convert.ToInt32(quantity[j]);
    cmd3.Parameters["@rate"].Value = Convert.ToInt32(rate[j]);
    cmd3.Parameters["@amount"].Value = Convert.ToInt32(amount[j]);
    cmd3.Parameters["@sno"].Value = Convert.ToInt32(snu[j]);
    cmd3.Parameters"@book_no"].Value = 0; // Change this to some input
    cmd3.ExecuteNonQuery();
}