有人可以告诉我,我如何弄错这个情节?

时间:2018-01-16 08:42:41

标签: python matplotlib

我正在尝试从CSV文件中绘制2列。仅使用'matplotlib'。我有4列,即durationday_of_weekmonthuser_type

我想在y轴上绘制持续时间,在x轴上绘制day_of_week或月份。

def change_month(filename):
    with open(data_file3, 'r') as f_in:
        # set up csv reader object
        reader = csv.DictReader(f_in)
        data1 = []
        data2 = []
        data3 = []
        for row in reader:
            data1.append(str(row['day_of_week']))
            data2.append(float(row['duration']))

        return data1, data2

data1, data2 = change_month(data_file1)
plt.bar(data1, data2, 0.8)
plt.show()

这是我得到的图表,但y轴上的值太小。它们应至少在2k到10k的范围内

enter image description here

1 个答案:

答案 0 :(得分:0)

我认为,看着你的情节,你会感到困惑,而日子不合适。原因是您使用 public class POAdapter extends RecyclerView.Adapter<POAdapter.MyViewHolder> { private static final String TAG ="POAdapter" ; private List<PODatamodel> poList; public Context con; private RecyclerView rv; private int prevPos=0; private FlipProgressDialog pd; private String userId; // OnDeleteCallback callback; /* public interface OnDeleteCallback { public void onPOItemDelete(); }*/ class MyViewHolder extends RecyclerView.ViewHolder { TextView tvTitle, tvDate, tvPrice; View mView; ConstraintLayout mainSegment, btnSegmnet; LinearLayout btnEdit, btnDel; public MyViewHolder(View view) { super(view); tvTitle = (TextView) view.findViewById(R.id.itemNa); tvPrice = (TextView) view.findViewById(R.id.itemPrice); tvDate = (TextView) view.findViewById(R.id.itemDate); mainSegment = (ConstraintLayout) view.findViewById(R.id.poMainSegment); btnSegmnet = (ConstraintLayout) view.findViewById(R.id.poBtnSegment); btnEdit = (LinearLayout) view.findViewById(R.id.btnEditPO); btnDel = (LinearLayout) view.findViewById(R.id.btnDeletePO); mView = view; } } public POAdapter(List<PODatamodel> list, Context con) { this.poList = list; this.con = con; } public POAdapter(List<PODatamodel> list, RecyclerView rv, Context con ) { this.poList = list; this.con = con; this.rv = rv; SharedPreferences pref = con.getSharedPreferences(FAPI.SAVED_USER_DATA, MODE_PRIVATE); userId = pref.getString(FAPI.USER_ID, "null"); pd = new FlipProgressDialog(con); pd.setMessage("Loading data..."); pd.setCancelable(false); pd.setImage(R.drawable.ic_flogo2); } @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View itemView = LayoutInflater.from(parent.getContext()) .inflate(R.layout.po_item, parent, false); return new MyViewHolder(itemView); } @Override public void onBindViewHolder(final MyViewHolder holder, int position) { final PODatamodel item = poList.get(position); Log.d("onBindPos", " holderpos: " + holder.getAdapterPosition()); holder.tvTitle.setText(item.getTitle()); holder.tvPrice.setText(item.getPrice()); holder.tvDate.setText(item.getDate()); holder.mView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // Toast.makeText(con, "Under Development", Toast.LENGTH_SHORT).show(); // showDialog(con); if (holder.btnSegmnet.getVisibility() == View.VISIBLE) { closePrevious(prevPos); } else { closePrevious(prevPos); holder.mainSegment.setVisibility(View.GONE); holder.btnSegmnet.setVisibility(View.VISIBLE); prevPos = holder.getAdapterPosition(); } // notifyItemChanged(holder.getAdapterPosition()); } }); holder.btnEdit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // Toast.makeText(con, "Under Development", Toast.LENGTH_SHORT).show(); Intent intent = new Intent(con, BuyActivity.class); intent.putExtra(FAPI.OPENING_MODE,FAPI.EDIT); intent.putExtra(FAPI.PO_ID,item.getId()); con.startActivity(intent); } }); holder.btnDel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String pdId = item.getId(); Log.d("onDeleteClicked", "ID :" + pdId + " userId :" + userId); pd.show(); deletePendingOrderItem(pdId, userId,holder.getAdapterPosition()); //Toast.makeText(con, "Under Development ", Toast.LENGTH_SHORT).show(); } }); } @Override public int getItemCount() { // Log.d(tag, menuItemDataList.size() + ""); return poList.size(); } @Override public int getItemViewType(int position) { return position; } public void deletePendingOrderItem(final String pdID, final String userID, final int pos) { RequestQueue requestQueue = VolleySingleton.getInstance(getApplicationContext()).getRequestQueue(); VolleySingleton.getInstance(con).addToRequestQueue( new StringRequest(Request.Method.DELETE, FAPI.DELETE_PENDING_ORDER_ITEM(pdID, userID), new Response.Listener<String>() { @Override public void onResponse(String response) { System.out.println(response); pd.dismiss(); extractDataForDelete(response,pos); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { pd.dismiss(); String msg = (error.getMessage() == null) ? " Something went wrong please try again" : error.getMessage(); Toast.makeText(con, msg, Toast.LENGTH_LONG).show(); Log.d("error", msg); } }) { @Override public Map<String, String> getHeaders() throws AuthFailureError { Map<String, String> params = new HashMap<String, String>(); params.put("accept", "application/json"); params.put("Content-Type", "application/x-www-form-urlencoded"); return params; } /* @Override protected Map<String, String> getParams() throws AuthFailureError { Map<String, String> params = new HashMap<>(); params.put("email", email); params.put("password", pass); System.out.println(Arrays.asList(params)); return params; }*/ } ); } public void extractDataForDelete(String json,int pos) { try { JSONObject jsonObject = new JSONObject(json); String code = jsonObject.getString(FAPI.PO_DELETE_STATUS); if (code.equals(FAPI.DELETE_SUCCESS)) { String msg = jsonObject.getString(FAPI.PO_MESSAGE); Toast.makeText(con, msg, Toast.LENGTH_SHORT).show(); poList.remove(pos); notifyDataSetChanged(); /* if (callback != null) callback.onPOItemDelete();*/ } } catch (JSONException e) { e.printStackTrace(); } } public void closePrevious(int pos) { try { Log.d(TAG, "closePrevious: " + pos); View mainSegment = rv.getLayoutManager().findViewByPosition(pos).findViewById(R.id.poMainSegment); View btnSegment = rv.getLayoutManager().findViewByPosition(pos).findViewById(R.id.poBtnSegment); btnSegment.setVisibility(View.GONE); mainSegment.setVisibility(View.VISIBLE); }catch (Exception e){e.printStackTrace();} // Toast.makeText(con, v.getTag().toString(), Toast.LENGTH_SHORT).show(); } } 读取了csv文件。字典不保留条目的顺序。如果要保留DictReader的顺序,则需要将该文件作为列表读出。例如:

rows

希望对你有用。